我正在尝试使用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。
答案 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参数。