2012-11-08 53 views
1

範圍測試我有belongs_to :contactRuby on Rails的當前用戶

我想在request.rb文件範圍語句來測試,如果接觸是當前用戶的請求表。

scope :myopen, where(:contact_id => current_user.id) 

返回: 未定義的局部變量或方法`CURRENT_USER」

應怎樣使用當前用戶ID?

謝謝

+0

當前用戶的ID,但我認爲你需要一個拉姆達範圍。不確定,並且無法從移動瀏覽器中刪除此評論:( –

回答

1

你不能這樣做,你也不應該這樣做。在數據庫級別沒有「當前」用戶。

您需要將用戶對象到一個類級別的方法:

def self.open_for_user(user) 
    where(:contact_id => user.id) 
end 
+0

這些請求位於名爲worequests的表中。我使用「<%@ worequests.each do | worequest |%>」在視圖文件中創建了一個列表。有一種方法可以使用sql stmt作爲do語句的一部分,而不是在控制器中使用作用域stmt嗎?我是RoR的新手,更習慣於使用sql。 – Reddirt

+0

'@ worequests.open_for_user(current_user)do' .. 。 – meagar