使用new_foo_path添加具有外键关系的新记录(@bar)

时间:2013-02-23 16:05:18

标签: ruby-on-rails-3 foreign-keys

我正在尝试使用Ruby on Rails将新location添加到restaurant

在我运行的restaurants#show操作中:

<%= link_to 'Add Location', new_location_path(@restaurant) %>

我收到了一个网址:http://localhost:3000/locations/new.1,其中1是该餐馆的ID。但是新的位置表格没有出现。

处理这个简单案例的rails方法是什么?使用new_FOO_path甚至是正确的事情吗?

在这种情况下,我不应该选择餐馆,因为我希望最终用户只能在自己的餐厅添加location。我会以某种方式需要在添加位置表单中使用餐馆ID隐藏输入,并且还验证后端的ID。

1 个答案:

答案 0 :(得分:0)

我会在你的routes.rb中创建一个nested resource。例如:

resources :restaurants do
  resources :locations
end

然后您的链接目标将为new_restaurant_location_path(@restaurant)。在您的控制器中,您可以通过Restaurant.find(params[:restaurant_id])找到餐厅。

或者,将餐馆ID设置为new_location_path(:restaurant_id => @restaurant.id)的GET参数。