2011-12-20 328 views
0

如何在使用'form_tag'表单时为POST/PUT/GET方法定义路由?我应该在模型中定义POST还是PUT?或者如果我有例如浏览的方法,然后我应该使用类似这样的路由:(警告!下面的伪代码)没有路由匹配POST/GET

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

请帮忙! :(

+1

PLE这个问题重述了这个问题,你不清楚你在问什么。请发布导致此问题的代码以及迄今已尝试的代码。 – Gazler 2011-12-20 20:58:08

回答

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. 最后,如果它是在提交一个表单,删除数据, (通常只是一个按钮,在形式没有其他字段)中,使用HTTP DELETE动词:

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

+0

但如何绑定与表单操作提交按钮? – mrmnmly 2011-12-24 12:27:55

+1

'后 '浏览/的MyMethod'=> '浏览#创建':为=>“create_stuff'',并考虑:'的form_for create_stuff_path做...'。请阅读导轨指南http://guides.rubyonrails.org – clyfe 2011-12-24 21:00:19