之間建立關聯,我有兩個型號:2個instancied對象
class Album < ActiveRecord::Base
attr_accessible :name
has_many :products
end
內product.rb:模型內部
內album.rb(相冊和產品)
1)
class Product < ActiveRecord::Base
attr_accessible :img, :name, :price, :quantity
belongs_to :album
end
2)使用「導軌控制檯」,我該如何t協會(所以我可以使用「<%= 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(名稱: 'Shampoo',album_id:a.id)' – bdares
@bdares要添加_id,我只需要使用'attr_accessible:img,:name,:price,:quantity,:_id',對不對?但是,它給了我這個錯誤,'ActiveModel :: MassAssignmentSecurity :: Error:無法批量分配受保護的屬性:album_id' –
@MrYoshiji,對於'p.album = a',它暫時工作,但如果我重新打開控制檯,p.album變成「無」。對於'p.album_id = a.id',它會給出這個錯誤,'NoMethodError:undefined method'album_id =''。對於'a.products << p',它會給出這個錯誤,'RuntimeError:不能修改凍結的Hash'。我是否需要重新生成這兩個模型?謝謝大家! –