我对如何构建activerecord关联感到困惑。我有一个属于用户的对象。该对象是由其他几个用户发送的。
class Object < ActiveRecord::Base
belongs_to :user
belongs_to :sender, :class_name => "User"
end
class User < ActiveRecord::Base
has_many :objects
end
我对如何设置“Sender”类感到困惑,因此我可以访问@ card.senders。我目前使用card_id和user_id
class Sender < ActiveRecord::Base
has_many :objects
end
似乎无法让它发挥作用。有什么帮助吗?
答案 0 :(得分:4)
您正尝试在Object
和User
之间设置HABTM (拥有并属于许多或多对多)关系。尝试这样的事情。
class Object < ActiveRecord::Base
belongs_to :user
has_many :senders, through: :object_relationships, source: :user, class_name: "User"
has_many :object_relationships
end
class User < ActiveRecord::Base
has_many :owned_objects, inverse_of: :user
has_many :objects, through: :object_relationships
has_many :object_relationships
end
class ObjectRelationship < ActiveRecord::Base
belongs_to :user
belongs_to :object
end
我更喜欢HABTM关联的has_many ..., through: ...
方法而不是has_and_belongs_to_many
,因为我喜欢详细说明。您可以阅读有关在here之间进行选择的信息。