2015-05-31 43 views
0

我正在使用jRuby 1.7.16.1編寫Rails 4.2.1中的應用程序爲什麼我會收到表錯誤的FROM-clause條目?

我有用戶和項目模型。項目有一個領導者,很多用戶通過加盟模式:

class Project < ActiveRecord::Base 
    has_many :users_projects_join 
    has_many :users, :through => :users_projects_join 
    has_many :active_users, 
    -> { where(users_projects_join: {user_status: true}) }, 
    :through => :users_projects_join, 
    :source => :user 

    belongs_to :leader, :class_name => 'User', :foreign_key => :leader_id 
end 

我想有:ACTIVE_USERS所以我寫了上面的查詢顯示,但它給了我

ERROR: missing FROM-clause entry for table "users_projects_join" 
    Position: 167: SELECT "users".* FROM "users" 
    INNER JOIN "users_projects_joins" 
    ON "users"."id" = "users_projects_joins"."user_id" 
    WHERE "users_projects_joins"."project_id" = 20 
    AND "users_projects_join"."user_status" = 't' 

但是,當我在嚴格執行這個查詢Postgres它爲我提供了user_status爲true的所有用戶。我讀到我需要添加連接(:users_projects_join).where(...)但它沒有幫助。

回答

2

現在就來試試:

class Project < ActiveRecord::Base 
    has_many :users_projects_joins 
    has_many :users, :through => :users_projects_joins 
    has_many :active_users, 
    -> { where(users_projects_joins: {user_status: true}) }, 
    :through => :users_projects_joins, 
    :source => :user 

    belongs_to :leader, :class_name => 'User', :foreign_key => :leader_id 
end 
+0

哦,孩子......謝謝你這麼多。 –

相關問題