给定用户类中的关联:
has_many :followers, through: :follows_as_fallowable,
source: :user
它返回跟随给定用户的用户实例。但是当我开始深入挖掘时,我意识到我并不完全理解为什么这个关联(user.followers)会返回User对象。
基于什么?我知道它可以通过关联名称或class_name哈希参数来推断,但在这种情况下这些都不重要。
我没有Follower模型,我没有提供class_name属性。
源参数只是说它应该在连接表中按用户列搜索
那么Rails如何知道它应该从Users表中选择?
编辑:
follow_as_followable是用户模型中的另一个关联:
has_many :follows_as_fallowable, class_name: 'Follow', as: :followable
答案 0 :(得分:0)
Rails将使用follows_as_fallowable
指定的关联名称(:source
(例如:user
模型)通过User
关系获取用户的知识
虽然问题中未显示,但可能包含follows_as_fallowable
的模型定义了belongs_to :user
关系,因此使用source: :user
指定导航的关系。
您可以在The has_many :through Association指南的Active Record Associations部分中查看更多信息。