2011-05-05 47 views
0

這裏是我的用戶模型:自引用的has_many,:通過

class User < ActiveRecord::Base 

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

end 

這裏是我的友誼模式:

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 *用戶模型中的布爾屬性。

當我嘗試運行此查詢:

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)) 

任何想法是怎麼回事?

+0

的友誼模型的實際表名是數據庫users_users。 – keruilin 2011-05-05 05:36:00

回答

0

你必須改變:條件引用用戶表,它應該看起來是這樣的:

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