如何使用:inverse_of与多个关联?
有谁知道我应该在下面的空白区域放置什么来使这种关系开箱即用? 我非常接近于完成这项工作,因为所有协会都能完美地工作。 唯一的问题是我无法保存附加水果的用户,因为目前没有:inverse_of。
我需要:inverse_of指向正确的方向,以便我可以用水果保存用户,而不必先保存用户,然后再将水果附加到它。 谢谢!
评论后更新:
用户模型:
class User { bought }, class_name: 'FruitsUser', inverse_of: :buyer has_many :bought_fruits, through: :bought_fruits_users, class_name: 'Fruit', source: :bought_fruit has_many :sold_fruits_users, -> { sold }, class_name: 'FruitsUser', inverse_of: :seller has_many :sold_fruits, through: :sold_fruits_users, class_name: 'Fruit', source: :sold_fruit end
中台模型:
class FruitsUser { where(type_of: 'bought') } scope :sold, -> { where(type_of: 'sold') } end
水果模型:
class Fruit { bought }, class_name: 'FruitsUser', inverse_of: :bought_fruit has_many :buying_users, through: :bought_fruits_users, class_name: 'User', source: :buyer has_many :selling_fruits_users, -> { sold }, class_name: 'FruitsUser', inverse_of: :sold_fruit has_many :selling_users, through: :sold_fruits_users, class_name: 'User', source: :seller end
仍然无法保存:
u = User.new [OK] u.needs <["is invalid"]]