Ruby on rails Rails自连接与有许多贯穿关系

Ruby on rails Rails自连接与有许多贯穿关系,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,用户可以通过以下关系跟踪其他用户 我想说 User.first.following并返回用户列表 这不起作用: Class User has_many :following_relationships has_many :followings, through: :following_relationships, foreign_key: :following_id, source: :user end Class FollowingRelationship attr_acce

用户可以通过以下关系跟踪其他用户

我想说

User.first.following
并返回用户列表

这不起作用:

Class User

  has_many :following_relationships
  has_many :followings, through: :following_relationships, foreign_key: :following_id, source: :user

end

Class FollowingRelationship
  attr_accessible :following_id, :follower_id

  belongs_to :followings, class_name: "User"

end
User.first.下面的
在控制台中给出了这一点:

SELECT "users".* FROM "users" INNER JOIN "following_relationships" ON "users"."id" = "following_relationships"."user_id" WHERE "following_relationships"."user_id" = 1
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: following_relationships.user_id: SELECT "users".* FROM "users" INNER JOIN "following_relationships" ON "users"."id" = "following_relationships"."user_id" WHERE "following_relationships"."user_id" = 1

有人看到我遗漏了什么吗?

我认为问题在于
followerrelationship
模型与
用户没有任何关系
既然您指定了
source::user
,它应该有
属于:user
,不是吗

我不太了解你的模型和它们之间的关系,但
属于:下面的
看起来很奇怪。
属于\u to
使用单数形式,因为它不能属于多个对象

更新1
更清楚地说。 我想你应该

class FollowingRelationship
  …
  belongs_to :user
  belongs_to :follower
end
这意味着
followers\u relationships
表应该有
user\u id
followers\u id

更新2
经过一番交谈,我们终于明白了。 这是您应该拥有的代码

class User < ActiveRecord::Base

  has_many :fade_relationships, foreign_key: :faded_id

  has_many :fadings, through: :fade_relationships, source: :fading

end

class FadeRelationship < ActiveRecord::Base
  attr_accessible :faded_id, :fading_id

  belongs_to :fading, class_name: "User"

end
class用户
我认为问题在于
以下关系
模型与
用户
没有任何关系
既然您指定了
source::user
,它应该有
属于:user
,不是吗

我不太了解你的模型和它们之间的关系,但
属于:下面的
看起来很奇怪。
属于\u to
使用单数形式,因为它不能属于多个对象

更新1
更清楚地说。 我想你应该

class FollowingRelationship
  …
  belongs_to :user
  belongs_to :follower
end
这意味着
followers\u relationships
表应该有
user\u id
followers\u id

更新2
经过一番交谈,我们终于明白了。 这是您应该拥有的代码

class User < ActiveRecord::Base

  has_many :fade_relationships, foreign_key: :faded_id

  has_many :fadings, through: :fade_relationships, source: :fading

end

class FadeRelationship < ActiveRecord::Base
  attr_accessible :faded_id, :fading_id

  belongs_to :fading, class_name: "User"

end
class用户
我想说User.first.following,它会返回一个用户列表,你说following关系与User没有关系。我在那个班有这个。。。属于:以下,类别名称:“用户”。。。我正在和那里的用户建立关系。是的,我一开始还没有看到<代码>用户。首先。following
表示
following
应该在
用户
模型中,而不是
following关系
。它是<代码>以下内容
在用户模型中。请看上面的代码。上面的代码我都很清楚。在用户-->
中有很多:以下,通过::以下关系,外键::以下id,源::使用
我已经更新了我的答案,请检查。清楚吗?我想说User.first.followers,它会返回一个用户列表。你说followerrelationship与User没有关系。我在那个班有这个。。。属于:以下,类别名称:“用户”。。。我正在和那里的用户建立关系。是的,我一开始还没有看到<代码>用户。首先。following
表示
following
应该在
用户
模型中,而不是
following关系
。它是<代码>以下内容
在用户模型中。请看上面的代码。上面的代码我都很清楚。在用户-->
中有很多:以下,通过::以下关系,外键::以下id,源::使用
我已经更新了我的答案,请检查。清楚吗?