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 に基づいて、entre が送信されている_Entres_ controllerものを知ることができます...meal_id

私は基本的に、そのフォームが、たとえばentreを送信するときに、この行に沿って送信URLを生成することを望んでいますmeal_id=3

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

ありがとう

4

2 に答える 2

1

form_for で新しいエントリとともに食事を提供する必要があります。これらは、ルート内の meal_id を使用して URL を構築するレールを取得します。

このようなもの:

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

何かをクリアさせてください。Meal has_many Entreアソシエーションのようなものですか?

これを試しましたか:

あなたnewentres_controllerプットで:

@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 に答える