【问题标题】:Scope usage for index view索引视图的范围使用
【发布时间】:2020-07-02 19:35:25
【问题描述】:

我正在尝试使用以下范围按评论评分的降序排列我的所有评论页面。我将如何实现这一点? 我已经在下面添加了我的索引方法。

scope :order_by_rating, ->{left_joins(:reviews).group(:id).order('avg(rating) desc')} 
      def index

        if @tea = Tea.find_by_id(params[:tea_id])
          @reviews = @tea.reviews
        else
          @reviews = Review.all
        end
      end

【问题讨论】:

    标签: ruby-on-rails ruby model-view-controller


    【解决方案1】:

    请将您的范围更改为

    scope :order_by_rating, ->{group(:id).order('avg(reviews.rating) desc')}
    

    【讨论】:

    • 使用我的方法显然没有做任何事情,但是当我使用与我的方法相同的第二个逻辑时,我得到 Can't join 'Review' to association named 'review';也许你拼错了?
    • 尝试将 .order('avg(rating) desc' 替换为 .order('avg(reviews.rating) desc'
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2021-01-16
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多