用于将子项添加到父项的Rails路由

时间:2015-06-10 23:05:22

标签: ruby-on-rails

用其他语言工作了几个月,并试图回到Rails。

如果我有模型House和模型Door,那么Door belongs_to HouseHouse has_many {{1 }}

如果我想向Doors添加door,请使用此路线:

house

或者是

add_door_path

如果是这样,我如何将add_door_path(@house) 嵌入其中?或者我是否需要为此创建新路线?它是标准house_id的一部分还是完全自定义的?

1 个答案:

答案 0 :(得分:2)

如果你有

# routes.rb
resources :house do
  resources :doors
end

然后你会house_doors_path(@house)

那是因为在您的路线中,您已指定门嵌套在房屋内。您需要内部参数,因为路径需要房屋ID。

要检查路线,请转到http://localhost:3000/rails/info/routes

如果另一方面,如果你有

# routes.rb
post '/door/' => 'doors#create', as: :add_door
新门不知道它属于哪个房子。所以你可以添加 post '/house/:id/door ...你还需要一个房子参数,所以你的语法是add_door_path(@house)

我希望能回答你的问题。