Rails路由和HTTP动词

时间:2012-05-07 17:59:11

标签: ruby-on-rails rails-routing httpverbs

我的应用是锻炼计划程序。

客户通常在某一天的三个时段中的一个进行锻炼,所以我提供了一个快速添加功能来安排早晨,中午或晚上的锻炼。

我的代码正常运行,但我认为我没有采用正确的方式。

我的路线如下:

match 'workouts/quick_add/:date/:timeslot' => "workouts#quick_add",
  :as => 'workout_quick_add'

我通过以下方式使用:

<%= link_to 'Morning Workout', workout_quick_add_path(:date => day, :timeslot => 'morning') %>

现在,如果请求是通过GET进行的,那么这是有效的,但根据HTTP协议方法定义,这似乎不正确。似乎POST或PUT是正确的,但是如果我在路由中添加:via => :post:put,整个事情就会出现路由错误。

这里有什么问题,以及实现这种功能的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

怎么样:

resources :workouts do
  collection do
    post :quick_add
  end
end

并在参数中传递日期和时间段。