min*_*ank 1 routing routes ruby-on-rails http-verbs ruby-on-rails-3.2
在我的应用程序中,我在点击时间链接时切换是否student属于training time或不属于.
# controller
def time
@student = Student.find(params[:student_id])
@time = TrainingTime.find(params[:training_time_id])
@student.toggle_time(@time)
respond_to do |format|
format.html { redirect_to @student }
format.js
end
end
# routes
resources :students do
match "time/:training_time_id", to: "students#time", as: :toggle_time
end
# view
<%= link_to t.time_format, student_toggle_time_path(@student, t), remote: true %>
Run Code Online (Sandbox Code Playgroud)
目前它正在使用匹配,但是设置它的正确方法是什么?为什么?
感谢您的输入.
这都是关于语义的.GET获取资源,POST创建资源PUT(或者PATCH,这是关于此事的争论)来更新资源,DELETE删除资源.
要honnest,有争论约POST和PUT太多.但是,由于Web服务器通常只处理GET和POST(通过参数模拟其他动词的行为),我倾向于不打扰太多,并坚持我上面写的.
你似乎没有创建任何资源,从语义上讲,PUT就是你正在寻找的东西.
至于matchrails 3.X,是一个catch all =>所有动词在路由中匹配.你可以限制使用match 'something', via: [:get, :post].使用Rails 4,默认情况下它不会执行任何操作,您必须明确处理的动词.
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |