0

我正在尝试使用 Ruby on Rails添加一个新location的。restaurant

restaurants#show我运行的动作中:

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

我得到一个 URL: ,餐厅的 id 在http://localhost:3000/locations/new.1哪里。1但是没有出现新的位置表格。

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

在这种情况下,我不应该通过下拉菜单来选择餐厅,因为我希望最终用户只能将餐厅添加location到他们自己的餐厅。我会以某种方式需要在添加位置表单中使用餐厅 ID 进行隐藏输入,并在后端验证该 ID。

4

1 回答 1

0

我会在你的 routes.rb 中创建一个嵌套资源。例子:

resources :restaurants do
  resources :locations
end

那么您的链接目标将是new_restaurant_location_path(@restaurant). 在您的控制器中,您可以通过Restaurant.find(params[:restaurant_id]).

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

于 2013-02-23T16:10:37.627 回答