2

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]
4

1 に答える 1

0

gem has_scope[ https://github.com/plataformatec/has_scope]のドキュメントを見ると、コントローラーのメソッドとして:type渡す必要があるようです。これは、パラメーターを受け入れないスコープに適用されます。:booleanhas_scope

has_scope :upward_trending, :type => :boolean
于 2014-11-12T17:32:12.287 に答える