如何使用: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"]]