0
我有三個表:
product
(ID,姓名)
image
(ID,SRC)
product_images
(產品,image_id,位置)
位置字段是產品形象的序號。
Product_images是連接表。
也有三個模型中的Rails 4:如何將值設置爲Rails 4中連接表的附加列?
class Product < ActiveRecord::Base
has_many :product_images, class_name: "ProductImage"
has_many :images, through: :product_images
end
class Image < ActiveRecord::Base
has_many :product_images
has_many :products, through: :product_images, foreign_key: :product_id
accepts_nested_attributes_for :product_images, allow_destroy: true
end
class ProductImage < ActiveRecord::Base
self.table_name = "product_images"
belongs_to :product
belongs_to :image
#has_many :images
#accepts_nested_attributes_for :image, :allow_destroy => true
#attr_accessible :position
end
在控制器:爲#圖片 未定義的方法`位置=」:
def test
@pr = Product.new name: "Super Sofa"
@imgs = Image.find(19, 20)
@imgs[0].position = 1
@imgs[1].position = 2
@pr.images = @imgs
@pr.save
end
導軌返回此錯誤0x68696e8
如何通過Image
模型將位置字段設置爲product_images
表?可能嗎?也許我對accep_nested_attributes_of有錯誤的理解。
可能是純SQL在這種情況下更好?
謝謝。
謝謝您的回覆。對於零
'未定義的方法'位置=」:但兩者這些變體的生成錯誤NilClass'
我曾嘗試這樣的代碼:
@imgs [0] .product_images [0] = ProductImage.new位置:1 此代碼不會生成錯誤,但是「位置」字段爲空。出於某種原因,分配後@imgs [0] .product_images [0]爲'Nil'。
>>位置屬性應不產品圖像表
圖像可以由幾種產品被包括在圖像桌子底下,因此圖像可以具有用於每個'product'不同'position'。 – ElCoyote