0

Itemとcolorという2つのテーブルがあるとします。

各アイテムは複数の色を持つことができますが、色はまだ存在しないため、アイテムテーブルには色とのhas_many関係が含まれています。

アイテムを追加する必要があるページがあり、同じページでアイテムの色を指定する必要があります。では、これらの値をアイテムIDとともにカラーテーブルに追加するにはどうすればよいですか。私を助けてください。引っ越しに苦労しています。

編集:

アイテムモデル

class Item < ActiveRecord::Base
has_many :colors
end

カラーモデル

class Color < ActiveRecord::Base
    belongs_to :items
    end

テーブル

 id | created_at | updated_at | item_id | color_name 
----+------------+------------+---------+--------------
4

1 に答える 1

1

色が常にアイテムで作成される場合は、ネストされた属性を使用する必要があります。

class Item < ActiveRecord::Base
  attr_accessible :colors_attributes
  has_many :colors
  accepts_attributes_for :colors
end

コントローラーアクションでItems#new

@items.colors.build

items / new.html.erbで、fields_forをitemsテーブルの他のフィールドと一緒に追加します。

<%= form_for @item do |f| %>
  <%= f.text_field :name %>
  ...
  <%= f.fields_for :colors do |color| %>
   <%= color.text_field :some_column_name_from_color %>
  <% end %>
<% end %>

その場で複数の色を追加/削除するには、nested_formgemを使用できます

于 2013-03-09T13:37:58.990 に答える