我目前的路线设置正常,它们的工作原理如下:
Myapp::Application.routes.draw do
resources :meal do
resources :entre, :side, :desert
end
end
在用餐索引视图中,我通过一堆部分生成:entre形式如下
<%= div_for meal do %>
<tr>
<td> <%= link_to "Meal #{meal.id}", meal %> </td>
<td> <div class ="comment"><%= meal.comment %></div></td>
<td></td>
<td><div class ="Edit">
<%= link_to 'Edit', edit_meal_path(meal) %>
<%= link_to 'Destroy', meal, method: :delete, remote: true, data: { confirm: 'Are y
</div></td>
<td><div class ="vmaction">
<%= form_for(meal.entres.new(params[:id])) do |f| %>
<%= f.textfield :choice %>
<%= f.submit "submit" %>
<% end %>
</div></td>
</tr>
<% end %>
如上所示,我正在调用行
中另一个对象的视图<%= form_for(meal.entres.new(params[:id])) do |f| %>
我正在尝试弄清楚如何添加url参数,以便根据网址,_Entres_ controller
将知道哪个meal_id
正在提交的内容...
我基本上希望该表单在提交说明meal_id=3
http://website/meal/3/entres/new
由于
答案 0 :(得分:1)
你需要在form_for中提供一顿饭以及一个新的中心。这些将获得rails以在路线中使用meal_id构建URL。
这样的事情:
<%= form_for([meal, meal.entres.new]) do |f| %>
答案 1 :(得分:1)
让我清楚一点。
是Meal
has_many
Entre
关联吗?
你试过这个:
new
entres_controller
中的
:
@meal = Meal.find(3) #what ever you want to find out.
@entre = @meal.entres.build
并在您看来:
<%= form_for [@meal, @entre] do |f| %>