2012-02-03 184 views
0

我有3個模型:用戶,客戶,問題。下面是這些模型查找has_many:通過

代碼

客戶模式:

class Customer < ActiveRecord::Base 
    belongs_to :se 
    belongs_to :user 
    has_many :issues 
end 

問題型號:

class Issue < ActiveRecord::Base 
    belongs_to :customer 
end 

用戶模式:

class User < ActiveRecord::Base 
    has_many :ses 
    has_many :customers 
    has_many :issues, :through => :customers 

    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name,  :last_name, :cell_ph, :area 


end 

我想只顯示事項,屬於特定用戶。我在做這項工作時遇到問題。有人可以建議我可以創建一個索引方法來完成這個任務嗎?

這裏是我的索引方法,其中我試圖用色器件的CURRENT_USER方法來識別誰在給視圖登錄的用戶:

def index 
    @issues = Issue.where(:user == :current_user) 

    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @issues } 
    end 
    end 

回答

1

除了羅德里戈的回答,您可以在這條線的一些語法錯誤:

@issues = Issue.where(:user == :current_user) 

這是永遠不會返回任何因爲:user == :current_user正在執行兩個不同的Ruby對象的比較。這總是返回錯誤,所以你的陳述基本上等於Issue.where(false)

這是更接近你需要的東西:

@issues = Issue.where(:user => current_user) 

這仍然不能解決你的問題(Issue沒有多少User S),但至少含義是正確的。

+0

感謝您的澄清。這對我的學習很有幫助。 – 2012-02-03 06:45:52