现在我正在审核网站。我想在我的登录页面上创建搜索功能。所以我安装了gemfile" ransack"。但是,当我把" ransack"在我的控制器上,错误"未定义的方法`搜索'为#"发生在当地环境中。
虽然我重新启动了本地服务器和命令" gem list ransack"表明搜查已成功安装,我无法进行搜查......问题的原因可能是什么?谢谢你的阅读。
我的控制器是这样的
Product_controller.rb
class ProductsController < RankingController
layout "review_site", :except => :show
# before_action :authenticate_user!, only: :show
def index
@products = Product.order('id ASC').per_page_kaminari(params[:page]).per(10)
end
def show
@product = Product.find(params[:id])
end
def search
@products = Product.where('title LIKE(?)', "%#{params[:keyword]}%").per_page_kaminari(params[:page]).per(10)
end
def landing
@q = Product.order('id ASC').per_page_kaminari(params[:page]).per(10).ransack(search_params)
@products = @q.result(distinct: true)
end
end
private
def search_params
params.permit(:title_count)
end
答案 0 :(得分:0)
你试图在activerecord集合上调用ransack
,它应该在Model类上调用。
def landing
@q = Product.ransack(search_params[:title_count])
@products = @q.result(distinct: true).order('id ASC').page(params[:page]).per(10)
end
参考Usage