Tôi có hai mô hình: (Album và sản phẩm)Tạo mối liên hệ giữa hai đối tượng instancied
1) Bên Models
Bên album.rb:
class Album < ActiveRecord::Base
attr_accessible :name
has_many :products
end
Bên product.rb:
class Product < ActiveRecord::Base
attr_accessible :img, :name, :price, :quantity
belongs_to :album
end
2) Sử dụng "bảng điều khiển đường ray", làm cách nào tôi có thể t các hiệp hội (vì vậy tôi có thể sử dụng "<% = Product.first.album.name%>")?
ví dụ:
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?
Nếu bạn thêm '_id' để truy cập, sau đó bạn có thể chỉ cần dính vào giá trị id như bạn nhanh chóng nó: 'Product.create (tên: 'Shampoo', album_id: a.id) ' – bdares
@bdares Để thêm _id, tôi chỉ cần sử dụng' attr_accessible: img,: name,: price,: quantity,: _id', phải không? Tuy nhiên, nó cho tôi lỗi này, 'ActiveModel :: MassAssignmentSecurity :: Error: Không thể gán khối lượng thuộc tính được bảo vệ: album_id' –
@MrYoshiji, Đối với' p.album = a', nó tạm thời hoạt động, nhưng nếu tôi mở lại console, p.album chuyển thành "nil". Đối với 'p.album_id = a.id', nó đưa ra lỗi này, 'NoMethodError: undefined method' album_id = ''. Đối với 'a.products << p', nó đưa ra lỗi này,' RuntimeError: không thể sửa đổi Hash bị đóng băng '. Tôi có cần phải tạo lại cả hai mô hình không? Cảm ơn mọi người! –