我不太确定我明白“成员做”块的目的是在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
代码是否必须在成员块中?会员街区的目的是什么?
答案 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上。