ROR + Ransack:按钮或link_to筛选
问题描述:
我已经引用这2个stackoverflow的帖子,但我似乎无法得到q[categories_name_cont]
填充“CategoryName”在我的网址:/articles/browse?utf8=✓&q[categories_name_cont]=&commit=CategoryName
我点击名为“CategoryName”例如。ROR + Ransack:按钮或link_to筛选
1)Rails filter with button or link_to using Ransack 2)How to construct a clickable link with a scope using Ransack and Rails
browse.html.erb
<% @categories.each do |category| %>
<%= search_form_for @q, url: browse_articles_path, method: :get do |f| %>
<%= f.hidden_field :categories_name_cont %>
<%= f.submit category.name, :class => 'btn btn-primary', :onclick => "document.getElementById('q_categories_name_cont').value = '#{category.name}'" %>
<% end %>
<% end %>
articles_controller.rb
def browse
@q = Article.ransack(params[:q])
@articles = @q.result.includes(:categories, :users)
@categories = Category.with_articles.order('name ASC').all
end
UPDATE:
1)硬编码的document.getElementById( 'q_categories_name_cont')。值= “类别名称” 并没有导致这个网址要么.. /articles/browse?utf8=✓&q[categories_name_cont]=CategoryName
后,我点击名为按钮 “类别名称”
2)我结束起来使用下面的方法来传递参数给的网址:
<% @categories.each do |category| %>
<a class="btn btn-large btn-primary" href="/articles/browse?utf8=✓&q[categories_name_cont]=<%= category.name %>">
</a>
<% end %>
答
您需要手动填写,在
<%= f.hidden_field :categories_name_cont, params[:q].try(:[], :categories_name_cont) %>
它可以让曲。但烦恼。出于这个原因,我实际上已经编写了一个小的gem,以便与SimpleForm一起自动执行此操作。如果你想看看,那么你可以在这里找到:
谢谢,我已经试过你的宝石。嗯..所以我应该修改这个simple_search_for? 'BTN BTN-初级' %> – doyz
我已复制并粘贴您的上面的代码,但是这似乎并没有工作,并给出了这个错误:“未定义的方法'合并'为零:NilClass” – doyz
如果您按照自述文件说明操作,gem的说明应该非常直接。我没有足够的信息来通过错误消息知道错误。抱歉 – kaspernj