使用has_scope路由错误

时间:2014-11-10 23:46:46

标签: ruby-on-rails has-scope

我在使用has_scope时收到以下错误。这似乎是一个非常明显和基本的错误,但我无法解决它。我真的很感激可以提供任何帮助。

我在网站的其他地方有ActiveAdmin,我相信使用它,所以我们可以假设gem正常运行。

ActionController::RoutingError at /products
undefined method `has_scope' for ProductsController:Class

型号:

class Product < ActiveRecord::Base
    belongs_to :category

    # Scopes
    default_scope { order('end_date DESC') } 
    scope :upward_trending, -> { where( "status > ?", 100).order('end_date DESC') }
end

控制器:

class ProductsController < ApplicationController
    before_filter :authenticate_user!

    has_scope :upward_trending

    def product_params
        params.require(:product).permit(:name, :status)
    end

    def index
        @q = Product.search(params[:q])
        @products = apply_scopes(@q.result.page(params[:page]).per(5)).all
    end


    def show
    end

end

路线:

resources :products, only: [:index]

1 个答案:

答案 0 :(得分:0)

查看gem has_scope [https://github.com/plataformatec/has_scope]的文档,看起来您需要将:type作为:boolean传递给has_scope方法控制器。这适用于不接受参数的范围。

has_scope :upward_trending, :type => :boolean