我最近发现了红宝石,ransack
Ransack可用于按窗体查询ActiveRecord数据库。
不过,我想做的是通过点击链接来查询activerecord。
假设我正在写一个体育博客并对文章进行分类。
假设我的类别是足球、篮球、棒球和曲棍球。
我可以通过写这段代码找到与篮球有关的文章

<%= search_form_for @q do |f| %>

  <%= f.label :category_eq, "Category" %>
  <%= f.search_field :category_eq %></br></br>

  <%= f.submit "Search", :class => 'submit-btn' %>

<% end %>

输入basketball并按提交。
然后我会看到一个关于篮球的文章列表。
我想做的是看到同样的事情,只需点击一个链接,就可以查询activerecord。
我知道你可以通过创建一堆不同的路径,一堆不同的控制器操作,并在其中查询ActiveRecord,如下所示
<% Article.where(category: 'basketball').each do |article| %>

  <%= article.title %>
  <%= article.author %>
  <%= article.content %>
  <%= article.category %>

<% end %>

好像有很多额外的工作,必须有一个更简单的方法

最佳答案

您不需要创建任何新路由。只需使用适当的q参数创建一个链接:

<%= link_to 'Basketball articles', q: {category_eq: 'Basketball'} %>

上面的链接将转到当前URL,但带有Basketball查询参数您还可以将q参数传递给路径或url助手:
<%= link_to 'Basketball articles', articles_path(q: {category_eq: 'Basketball'}) %>

关于ruby-on-rails - Rails-使用ransack通过链接查询数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27974270/

10-11 22:34
查看更多