簡體   English   中英

如何在欄桿中使用過濾性寶石?

[英]How to use filterrific gem in rails?

我使用了filterrific寶石來過濾軌道中的模型。

目前,我有三種模型, VideoTaggingTag

Video.rb

has_one :tagging
has_one :tag, through: :tagging

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

因為很難使用tag.name進行過濾(請參見StackOverflow ),所以我在tag_idtagging使用tag_id進行過濾。

Tagging.rb

belongs_to :video
belongs_to :tag

Tag.rb

has_many :taggings
has_many :videos, through: :taggings

目前, scope正在運行,但我不知道如何編寫控制器視圖

在控制器中:如何編寫select_options方法?

鑒於:如何編寫select方法? 目前,我這樣寫,但是不起作用:

f.select(:by_tag, Tag.all, { include_blank: '- Any -' }, :class=>'form-control')

select標簽幫助器的選擇選項需要看起來像是成對的數組[ [ name, id ], [ name, id ] ... ] 嘗試這樣的事情:

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

為了使環境更清潔,您可以將rails collection_select輔助程序與類似

f.collection_select(:by_tag, Tag.all, :id, :name, prompt: '- Any -', class: 'form-control')

第二個需要根據控制器使用空白選項進行的操作進行調整。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM