4

我创建了一个应用程序,其中可以将广告横幅保存到数据库并用属性标记,例如横幅的尺寸(例如 300x250)。

这一切都是使用acts_as_taggable_on.

现在我想做的是有一个搜索框,当用户输入尺寸(例如 300x250)时,我的页面将过滤以仅显示标有“300x250”的广告横幅(这不需要用Ajax 或其他任何东西,搜索按钮都可以)

我目前已安装 gem Ransack 进行搜索,但不知道如何将其与Acts_as_taggable_on.

有没有一种简单的方法可以让我在我的视图中有一个搜索框,它只搜索标签并只使用标记的对象更新页面?

非常感谢您提供的任何帮助!

4

1 回答 1

0

这很容易。我们只需要为洗劫写出正确的联想。

reflect_on_all_associationsreflections显示Banner具有名为 的关联:taggable,该关联导致模型 ActsAsTaggableOn::Tagging,其中belongs_toActsAsTaggableOn::Tag。

那么:

@q = Banner.ransack(taggings_tag_name_cont: 'interesting')
@banners = @q.result

当然,可以免费使用其他匹配器,例如eq,in等等

于 2015-05-25T14:47:22.113 回答