我在使用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]
答案 0 :(得分:0)
查看gem has_scope
[https://github.com/plataformatec/has_scope]的文档,看起来您需要将:type
作为:boolean
传递给has_scope
方法控制器。这适用于不接受参数的范围。
has_scope :upward_trending, :type => :boolean