Rails - 使用 ransack 通过链接查询数据库
Rails - Using ransack to query a database through links
我最近发现了 ruby gem, ransack
Ransack 可用于通过表单查询 ActiveRecord 数据库。
我想做的是通过单击 links 查询 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
并按提交。
然后我会看到与篮球相关的文章列表。
我想做的是看到同样的事情,只是点击一个link,查询ActiveRecord。
我知道您可以通过创建一堆不同的路径、一堆不同的控制器操作并在其中按如下方式查询 ActiveRecord 来做到这一点
<% Article.where(category: 'basketball').each do |article| %>
<%= article.title %>
<%= article.author %>
<%= article.content %>
<%= article.category %>
<% end %>
这似乎有很多额外的工作,必须有更简单的方法
您不需要创建任何新路线。只需使用适当的 q
参数创建一个 link:
<%= link_to 'Basketball articles', q: {category_eq: 'Basketball'} %>
上面的 link 将转到当前的 URL,但带有 Basketball 查询参数。您还可以将 q
参数传递给路径或 url 助手:
<%= link_to 'Basketball articles', articles_path(q: {category_eq: 'Basketball'}) %>
我最近发现了 ruby gem, ransack
Ransack 可用于通过表单查询 ActiveRecord 数据库。
我想做的是通过单击 links 查询 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
并按提交。
然后我会看到与篮球相关的文章列表。
我想做的是看到同样的事情,只是点击一个link,查询ActiveRecord。
我知道您可以通过创建一堆不同的路径、一堆不同的控制器操作并在其中按如下方式查询 ActiveRecord 来做到这一点
<% Article.where(category: 'basketball').each do |article| %>
<%= article.title %>
<%= article.author %>
<%= article.content %>
<%= article.category %>
<% end %>
这似乎有很多额外的工作,必须有更简单的方法
您不需要创建任何新路线。只需使用适当的 q
参数创建一个 link:
<%= link_to 'Basketball articles', q: {category_eq: 'Basketball'} %>
上面的 link 将转到当前的 URL,但带有 Basketball 查询参数。您还可以将 q
参数传递给路径或 url 助手:
<%= link_to 'Basketball articles', articles_path(q: {category_eq: 'Basketball'}) %>