Ingredients と Foods の 2 つのモデルがあります。
class Food < ActiveRecord::Base
belongs_to :user
has_many :ingredients
accepts_nested_attributes_for :ingredients
attr_accessible :name, :price
end
class Ingredient < ActiveRecord::Base
belongs_to :user
belongs_to :food
attr_accessible :ingredient_name, :quantity_used
end
2 つのモデルのスキーマは次のとおりです。
create_table "foods", :force => true do |t|
t.string "name"
t.integer "user_id"
t.float "price"
t.string "ingredient_name"
end
create_table "ingredients", :force => true do |t|
t.string "ingredient_name"
t.integer "user_id"
t.integer "food_id"
t.integer "quantity_used"
end
Ingredient テーブルも作成/更新する Food のフォームを作成しています。フォームが機能しており、送信ボタンで正しい属性が更新されますが、各テーブルに他の属性も更新したいです。たとえば、Food Controller では、次のようなことをしたいと考えていますingredient.user_id = current_user.id
。params[:food] を介してアクセスできることは理解していますが、フォームによって更新されていない個々のフィールドにアクセスするにはどうすればよいですか?
現在、私のフォームは次のとおりです。
<%= form_for(@food) do |f| %>
<div class="field">
<%= f.label :Name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :price %><br />
<%= f.number_field :price %>
</div>
<div>
<%= f.fields_for :ingredients do |builder| %>
<%= builder.label "Ingredient Used:" %>
<%= builder.text_field :ingredient_name %><br />
<%= builder.label "Quantity Used:" %>
<%= builder.text_field :quantity_used %><br />
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Food#create アクションでこの特定の Food の材料にアクセスするにはどうすればよいですか?
ありがとう!