我创建了一个应用程序,可以将广告横幅保存到数据库并使用属性标记,例如横幅的尺寸(例如300x250)。
这一切都是使用acts_as_taggable_on
完成的。
现在我要做的是有一个搜索框,当用户输入维度时(例如300x250),我的页面将过滤以仅显示标有“300x250”的广告横幅(这不需要用Ajax或其他任何东西完成,搜索按钮就可以了)
我目前已安装gem Ransack进行搜索,但无法弄清楚如何将其与Acts_as_taggable_on
集成。
我是否有一种简单的方法可以在我的视图中设置一个搜索框,只搜索标签并仅使用标记对象更新页面?
非常感谢您提供的任何帮助!
答案 0 :(得分:0)
这很容易。我们应该为搜索行为写出正确的关联。
reflect_on_all_associations
或reflections
表明Banner
有一个名为:taggable
的关联,这会导致模型ActsAsTaggableOn :: Tagging,belongs_to
ActsAsTaggableOn :: Tag
那么:
@q = Banner.ransack(taggings_tag_name_cont: 'interesting')
@banners = @q.result
当然,可以免费使用其他匹配器,例如eq
,in
等等