使用'form_tag'表单时如何定义POST / PUT / GET方法的路由?我应该在模型中定义POST或PUT方法吗?或者如果我有例如浏览方法然后我应该做路由这样的事情:(警告!下面的伪代码)
match 'browsing/mymethod' => 'browsing#post'
请帮忙! :(
答案 0 :(得分:1)
如果您的表单不改变数据库状态(不创建,更新或删除记录),也不包含敏感数据(如登录凭据),例如,如果它是搜索表单并且您使用它来过滤结果,使用GET HTTP动词:
get 'browsing/mymethod' => 'browsing#filter'
如果它是在数据库中创建数据的表单,或者它创建了一些资源(例如,启动身份验证会话),请使用POST HTTP动词:
post 'browsing/mymethod' => 'browsing#create'
注意:我们正在谈论表单提交的操作,而不是显示表单的可能的辅助操作!
如果它是更新数据库中的数据或更改某些资源的表单,请使用PUT HTTP动词:
put 'browsing/mymethod' => 'browsing#update'
最后,如果它是一个提交时的表单,删除数据(通常只是一个按钮,表单中没有其他字段),请使用DELETE HTTP动词:
delete 'browsing/mymethod' => 'browsing#destroy'