没有路由匹配POST / GET

时间:2011-12-20 20:56:06

标签: ruby-on-rails-3 forms http-post

使用'form_tag'表单时如何定义POST / PUT / GET方法的路由?我应该在模型中定义POST或PUT方法吗?或者如果我有例如浏览方法然后我应该做路由这样的事情:(警告!下面的伪代码)

match 'browsing/mymethod' => 'browsing#post'

请帮忙! :(

1 个答案:

答案 0 :(得分:1)

  1. 如果您的表单不改变数据库状态(不创建,更新或删除记录),也不包含敏感数据(如登录凭据),例如,如果它是搜索表单并且您使用它来过滤结果,使用GET HTTP动词:

    get 'browsing/mymethod' => 'browsing#filter'

  2. 如果它是在数据库中创建数据的表单,或者它创建了一些资源(例如,启动身份验证会话),请使用POST HTTP动词:

    post 'browsing/mymethod' => 'browsing#create'

    注意:我们正在谈论表单提交的操作,而不是显示表单的可能的辅助操作!

  3. 如果它是更新数据库中的数据或更改某些资源的表单,请使用PUT HTTP动词:

    put 'browsing/mymethod' => 'browsing#update'

  4. 最后,如果它是一个提交时的表单,删除数据(通常只是一个按钮,表单中没有其他字段),请使用DELETE HTTP动词:

    delete 'browsing/mymethod' => 'browsing#destroy'