2011-05-20 163 views
0

如果我有一組名爲類,並在該類我有一個 的has_many:用戶查詢相關類

我想一個方法添加到組類,看是否有特定的用戶是該組羣。如果我使用設計認證,我可以調用current_user。

所以我想我的第一個問題是我可以從模型中調用current_user,還是需要將它傳遞給方法?

我的第二個問題是我應該能夠做到以下幾點?

def has_access? 
    !current_user.nil && users.where(:id == current_user.id).count(:id) > 0 
    end 

回答

2

您不能在模型中調用current_user - 它只能在控制器和視圖的範圍內使用。

這意味着你的方法是怎麼回事顯得有點不同 - 也許嘗試以下操作:

def has_access?(user) 
    user.present? && users.where(:id => user.id).any? 
end 
0

CURRENT_USER是一個幫助,所以你不能從一個模型訪問它,必須把它作爲參數傳遞給方法你說。

對於第二個問題,你能告訴我這個定義在哪個類中嗎? 據我所知,它似乎是在組模型定義,因爲你使用的「用戶」,我猜是has_many關聯。 如果是這樣,答案顯然不是,因爲「current_user」在這裏是未知的。