首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rails中使用filterrific?

如何在rails中使用filterrific?
EN

Stack Overflow用户
提问于 2016-01-17 23:37:30
回答 1查看 1.1K关注 0票数 0

我使用filterrific gem来过滤rails中的模型。

目前,我有三种型号,VideoTaggingTag

Video.rb

代码语言:javascript
复制
has_one :tagging
has_one :tag, through: :tagging

scope :by_tag, -> (tag_id) {joins(:tagging).where(taggings: {tag_id: tag_id})}

因为很难使用tag.name进行筛选(请参阅StackOverflow),所以我在联接表tagging中使用tag_id进行筛选。

Tagging.rb

代码语言:javascript
复制
belongs_to :video
belongs_to :tag

Tag.rb

代码语言:javascript
复制
has_many :taggings
has_many :videos, through: :taggings

目前,scope正在工作,但我不知道如何编写控制器视图

控制器中:如何编写select_options方法?

视图:如何编写select方法?目前,我这样写,但没有用:

代码语言:javascript
复制
f.select(:by_tag, Tag.all, { include_blank: '- Any -' }, :class=>'form-control')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 00:07:49

进入select标记助手的选择选项需要看起来像一对[ [ name, id ], [ name, id ] ... ]的数组。试着做这样的事情:

代码语言:javascript
复制
f.select(:by_tag, Tag.all.map {|tag| [tag.name, tag.id]}, { include_blank: '- Any -' }, :class=>'form-control')

或者为了保持更干净,您可以使用rails collection_select助手

代码语言:javascript
复制
f.collection_select(:by_tag, Tag.all, :id, :name, prompt: '- Any -', class: 'form-control')

第二个选项需要调整,这取决于控制器对空白选项所做的操作。

APIDock ActionView::Helpers::FormOptionsHelper#select上有很好的例子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34845150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档