"会员的功能"在rails路由中

时间:2015-04-09 06:55:21

标签: ruby-on-rails rails-routing

我不太确定我明白“成员做”块的目的是在rails路由

resources :todo_lists do
    resources :todo_items do
        member do
            patch :complete
        end
    end
  end

在上面的代码中,我了解 todo_items todo_lists 的嵌套资源,但我不知道补丁:完整是在做。我所知道的是上面的代码给了我一条新路径, complete_todo_list_todo_item_path

代码是否必须在成员块中?会员街区的目的是什么?

2 个答案:

答案 0 :(得分:0)

成员路由需要ID,因为它作用于成员。 在您的情况下,它将生成像这样的URL链接

url => todo_lists/:todo_list_id/todo_items/:todo_item_id/complete

helper method =>  complete_todo_list_todo_item_path(todo_list_object, todo_item_object)

如果您定义collection而不是member,那么它将不会带任何ID。

答案 1 :(得分:0)

当您在模型中需要额外路线时,当您创建资源时,您需要使用成员资格来创建个人(需要模型的ID)和集合资源,例如:get是单独路由,index是收集路由。

现在,如果您想在同一型号上使用其他路线,则可以使用成员区块创建新的单独路线收集区块(如果您需要收集路线)

在您的示例中,您为todo_items创建了一个补丁路径,该路径与其他资源一样嵌套在todo_lists上。