0

我目前的路线设置很好,它们的工作方式如下:

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 参数,以便根据 url,_Entres_ controller将知道meal_id要提交哪个 entre...

我基本上希望该表单在提交入口时生成一个提交 urlmeal_id=3

http://website/meal/3/entres/new

谢谢

4

2 回答 2

1

您需要在 form_for 中提供一顿饭和一份新的主菜。这些将让 rails 使用路由中的 meal_id 构建 url。

像这样的东西:

<%= form_for([meal, meal.entres.new]) do |f| %>
于 2013-05-20T05:41:24.757 回答
1

让我澄清一些事情。是不是类似Meal has_many Entre联想?

你试过这个:

在你newentres_controllerput 中:

@meal = Meal.find(3) #what ever you want to find out.
@entre = @meal.entres.build

在您看来:

<%= form_for [@meal, @entre] do |f| %>
于 2013-05-20T06:08:25.763 回答