我已经为rails 4添加了Ransack gem,并且已经安装了捆绑:
gem "ransack",github: "activerecord-Hackery/ransack",branch: "rails-4"
我还编辑了我的控制器如下(recipes_controller):
def indexif params[:tag] @all_recipes = Recipe.tagged_with(params[:tag])else @all_recipes = Recipe.allendif signed_in? @user_recipes = current_user.recipes.order("created_at DESC").paginate(page: params[:page],:per_page => 10)endif params[:q] @q = Recipe.search(params[:q]) @all_recipes = @q.result(distinct: true)endend
然后我在表单中添加如下(食谱/索引):
<%= search_form_for @q do |f| %> <%= f.label :name_cont %> <%= f.text_fIEld :name_cont %> <%= f.submit %><% end %>
我收到以下错误:
No Ransack::Search object was provIDed to search_form_for!
在这条线上:
<%= search_form_for @q do |f| %>
这会与安装有关吗?
解决方法 Nicolas是正确的,因为当请求包含“q”参数时,错误来自@q仅被初始化.这就是为什么在您提交表单之前您会收到错误(没有“q”参数).解决这个问题的另一种方法是初始化@q
在你的application_controller中
def set_search@q=Recipe.search(params[:q])end
在你的recipes_controller中before_filter:set_search
总结以上是内存溢出为你收集整理的ruby-on-rails – 没有Ransack ::搜索对象已提供给search_form_for全部内容,希望文章能够帮你解决ruby-on-rails – 没有Ransack ::搜索对象已提供给search_form_for所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)