簡體   English   中英

自引用 has_many, :through

[英]Self-referencing has_many, :through

這是我的用戶 model:

class User < ActiveRecord::Base

  has_many :friends, :class_name => 'Friendship', :dependent => :destroy

end

這是我的友誼model:

class Friendship < ActiveRecord::Base

  belongs_to :user
  belongs_to :friend, :class_name => 'User', :foreign_key => 'friend_id'

  set_table_name :users_users
end

現在,我在名為 *is_awesome* 的用戶 model 中有一個 boolean 屬性。

當我嘗試運行此查詢時:

User.find(1).friends.find(:all, :include => :users, :conditions => {:is_awesome => false})

我收到以下錯誤:

ActiveRecord::StatementInvalid: Mysql::Error: 
Unknown column 'users_users.is_awesome' in 'where clause': 
SELECT * FROM `users_users` 
WHERE (`users_users`.user_id = 1 AND (`users_users`.`is_awesome` = 0))

知道發生了什么嗎?

您必須更改:條件以引用用戶表,它應該看起來像這樣:

User.find(1).friends.find(:all, :include => :users, :conditions => "users.is_awesome IS FALSE")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM