宁静的资源与非宁静的方法? (Ruby on rails)

时间:2011-03-03 21:38:17

标签: ruby-on-rails

我有一个控制器CourseSteps,包含3列course_id,step_id,position。它具有可以正常工作的创建,索引和销毁操作。

我需要执行一个交换两个位置值的函数。我不认为这适合“更新”方法,因为我要更改2行。我应该创建一个名为swap_position的新方法吗?为此模型设置位置列是否有意义? (它基本上创建了课程和步骤之间的多对多关系。(课程可以有许多步骤,步骤可以与许多课程相关)

1 个答案:

答案 0 :(得分:0)

您可以将路线添加到单个资源,如下所示:

resources :your_resources do
    member do
       post swap_position
    end
 end

您可以向集合添加方法,如下所示:

resources :your_resource do
    collection do
       post swap_position
    end
 end

当然,您不仅限于“发布”;可以使用任何RESTful动词。在您的情况下,您可能想要发帖或获取。

编辑:您可以在此处详细了解:http://guides.rubyonrails.org/routing.html阅读第2.9节