2013-06-12 28 views

回答

1

首先將使用數組聯接,第二個是做兩個查詢,無論是增加另一個範圍,你的照片模型有效:

# Photo Model 
    scope :public, where {:public => true } 
    scope :user, lambda { |user| where("user_id = ?", user) } 

    # Controller 
    Photo.public.user(user) 
+0

由於某種原因,我不能這樣做?我只能分別做兩個查詢,不在一個範圍內 – chumakoff

+0

它不是一個範圍,它是一個鏈中的兩個範圍 - 這是一個很常見的用法,發佈你的模型,也許我們可以找出爲什麼這不適合你。 – Matt

1

鑑於照片#公衆是一個範圍,前:

scope :public, -> { where(:public => true) } 

你可以簡單地寫

user.photos.public 
+0

由於某種原因,我不能這樣做?我只能分別做兩個查詢,不在一個範圍內 – chumakoff

+0

@AntonChumakov是照片的一個關聯嗎? –

0

在這種情況下,你不能用一個新的範圍,竟被我D建議你:

user.photos.merge(Photo.public) 
+0

問題是範圍user.photos和Photo.public不能在單個SQL查詢中。他們相互衝突。在這個例子中也是 – chumakoff

+0

然後什麼是錯誤信息? – pierrea