Vic*_*tor 5 ruby-on-rails ruby-on-rails-3
我有以下范围:
scope :user_reviews, lambda { |user| where(:user_id => user) }
Run Code Online (Sandbox Code Playgroud)
我在控制器中应用它:
def show
@review = @reviewable.reviews.user_reviews(current_user).first || Review.new
end
Run Code Online (Sandbox Code Playgroud)
这first
是限制搜索当前用户的唯一审查.现在我尝试编写一个新的范围user_review
,我尝试了许多方法来链接user_reviews
范围first
,但却无法得到它.像这样的东西:
scope :user_reviews, lambda { |user| where(:user_id => user) }
scope :user_review, lambda { |user| user_reviews(user).first }
Run Code Online (Sandbox Code Playgroud)
我知道上面user_review
的错误,但只是想告诉你们我想做什么.
我应该如何正确地写这个?
谢谢.
Tom*_*m L 10
@Victor,坚持你原来的想法.使用scope :user_reviews, lambda { |user| where(:user_id => user) }
和致电user_reviews.first
.没有错.
绝对不要定义返回单个对象的范围.范围应该是可链接的.
归档时间: |
|
查看次数: |
6456 次 |
最近记录: |