我有3種型號:使用的has_many通過與附加的屬性創建關聯
class Product < ActiveRecord::Base
has_many :product_recommendations, :dependent => :destroy
has_many :recommendations, :through => :product_recommendations
end
class Recommendation < ActiveRecord::Base
has_many :product_recommendations, :dependent => :destroy
has_many :products, :through => :product_recommendations
end
class ProductRecommendation < ActiveRecord::Base
belongs_to :recommendation
belongs_to :product
end
我也有創造了一個新的建議(S)的方法:
def self.get_recommendation(product, rating_set)
r = Recommendation.create
r.title = @title
r.description = @description
r.cover_img = @image_url
r.curr_price = @curr_item_price
r.save!
end
我傳入產品對象和rating_set屬性,當我調用該方法時。
如何創建與1)產品對象的product_recommendation關聯。 2)新創建的推薦對象。 3)屬於ProductRecommendation連接表的附加屬性(rating_set)。
我試過,沒有運氣以下:
product.create_product_recommendations({:rating_set => rating_set}, {:recommendation => r})
product.recommendations.create(:rating_set => rating_set, :recommendation => r)
對於某些原因,它不添加recommendation_id。它將其保存爲空。這符合預期,但我不知道如何添加額外的rating_set屬性:'code' @ product = product @recommendation = r @ product.recommendations << @recommendation – Yogzzz