9

私は2つのモデルを持っています:(アルバムと製品)

1)モデルの内部

album.rbの内部:

class Album < ActiveRecord::Base
  attr_accessible :name
  has_many :products
end

product.rbの内部:

class Product < ActiveRecord::Base
  attr_accessible :img, :name, :price, :quantity
  belongs_to :album
end

2)「railsconsole」を使用して、関連付けを設定するにはどうすればよいですか(「<%= Product.first.album.name%>」を使用できるように)?

例えば

a = Album.create( :name => "My Album" )
p = Product.create( :name => "Shampoo X" )
# what's next? how can i set the album and the product together?
4

2 に答える 2

12

You can do like this:

a = Album.create( name: "My Album" )

p = Product.create( name: "Shampoo X" )
# OR
p = Product.create( name: "Shampoo X", album_id: a.id )
# OR
p.album = a
# OR
p.album_id = a.id
# OR 
a.products << a
# finish with a save of the object:
p.save

You may have to set the attribute accessible to album_id on the Product model (not sure about that).

Check @bdares' comment also.

于 2012-12-26T00:04:37.400 に答える
2

製品を作成するときに関連付けを追加します。

a = Album.create( :name => "My Album" )
p = Product.create( :name => "Shampoo X", :album => a )
于 2012-12-26T00:28:16.173 に答える