Rails 3.1 Ransack HABTM

Posted

技术标签:

【中文标题】Rails 3.1 Ransack HABTM【英文标题】: 【发布时间】:2012-07-22 02:02:42 【问题描述】:

Ransack 是否支持 HABTM?

拥有模型:

选购 HABTM 类别 类别 HABTM 商店

我可以使用 ransack 按单个类别搜索商店吗? 表格是什么样子的?

【问题讨论】:

【参考方案1】:

我认为您尝试使用的字段是

:categories_id_eq

用法是这样的

<%= f.label :categories_id_eq, "Category" %>
<%= f.collection_select :categories_id_eq, Category.order(:title), :id, :title %>

【讨论】:

【参考方案2】:

您应该知道存在一些问题: 虽然这很好用

:categories_id_eq

如果您想查找任何类别的产品,您可以使用

:categories_id_in

但是,如果您需要选择属于所有类别的产品,它将无法按预期工作:

:categories_id_all

返回零结果见讨论:

Rails, Ransack: How to search HABTM relationship for "all" matches instead of "any"

Convert ActiveRecord habtm query to Arel .

【讨论】:

以上是关于Rails 3.1 Ransack HABTM的主要内容,如果未能解决你的问题,请参考以下文章

在 Ransack 上为 Rails 设置默认搜索参数

rails gem ransack 之模糊搜索

Rails,Ransack:如何在 HABTM 关系中搜索“所有”匹配项而不是“任何”匹配项

如何在 Rails 3 中将范围与 Ransack 一起使用?

Rails Ransack gem:使用一个条件搜索多个值

Ruby on Rails Ransack Datetime 到日期搜索