我有两个模型:(Albums和Product)
1)模型内部
在album.rb里面:
在 product.rb 内部:
“使用“rails console”,我该如何设置关联(以便我可以使用“<%= Product.first.album.name %>”)?例如:”
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
“使用“rails console”,我该如何设置关联(以便我可以使用“<%= 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?
_id
添加到可访问列表中,那么您可以在实例化时直接插入ID值:Product.create(name:'Shampoo',album_id:a.id)
。 - user684934attr_accessible :img, :name, :price, :quantity, :_id
,对吗?但是,它给了我这个错误:ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: album_id
。 - rosary dextrosep.album = a
,它暂时可以工作,但如果我重新打开控制台,p.album会变成“nil”。对于p.album_id = a.id
,它会给出这个错误:NoMethodError: undefined method 'album_id='
。对于a.products << p
,它会给出这个错误:RuntimeError: can't modify frozen Hash
。我需要重新生成这两个模型吗?谢谢大家! - rosary dextrosealbum_id
属性:attr_accessible :img, :name, :price, :quantity, :album_id
。 - MrYoshijialbum_id
作为整数。 - MrYoshiji