我有以下範圍:第一或Rails的範圍限制
scope :user_reviews, lambda { |user| where(:user_id => user) }
我在控制器中應用此:
def show
@review = @reviewable.reviews.user_reviews(current_user).first || Review.new
end
的first
是限制搜索當前用戶的唯一評審。現在我試着寫一個新的示波器user_review
,我嘗試了很多方法將user_reviews
示波器與first
連接起來,但卻無法得到它。事情是這樣的:
scope :user_reviews, lambda { |user| where(:user_id => user) }
scope :user_review, lambda { |user| user_reviews(user).first }
我知道上面user_review
是錯誤的,但只是想你展示傢伙什麼,我試圖做的。
我該如何正確寫入?
謝謝。
我沒有看到一個很大的問題,你有什麼。一個只返回一個對象的範圍不再是一個範圍。您可以在作用域的塊中定義方法,但在這種情況下這可能是多餘的(例如,在範圍結果中簡單調用'.first'的'def first'方法)。 –
@TomL,你的想法有效。請把它作爲答案,以便我可以標記並給你信用。謝謝。 – Victor