[英]How to filter boolean attribute with Rails Ransack?
在我的Rails App中,我有一個情節模型。 每個情節都有cached
的布爾屬性,該屬性將情節標記為已緩存。
那么episode.cached?
如果劇集已緩存,則返回true。
我想在我的搜索表單中添加一個復選框,以使其僅在搜索結果中顯示緩存的劇集 。 我使用ransack gem建立搜索。
這是我當前的搜索表:
<%= search_form_for @query, url: playlist_management_search_path(channel_playlist: @channel_playlist.id), method: :get, remote: true do |f| %>
<%= f.text_field :title_or_subtitle_cont, :placeholder => "Verzeichnis durchsuchen", :id => "search-input-field" %>
<%= f.check_box_tag :cached_true, 1, :checked => @query.cached_true %>
<%= f.submit "Search", :class => "prefix button" %>
<% end %>
使用<%= f.check_box_tag :cached_true, 1, :checked => @query.cached_true %>
我試圖獲得一個執行上述操作的復選框。 但是,它不起作用。 它undefined method 'cached_true' for nil:NilClass
說了undefined method 'cached_true' for nil:NilClass
。
所以:我該如何選擇“僅向我顯示帶有緩存= true的情節”復選框?
自己找到解決方案:
<%= f.check_box :cached_true %>
<%= f.label :cached_true %>
僅當您要遍歷幾個元素並為每個元素添加一個復選框時,才需要check_box_tag
。
您可以使用兩個實例變量: @query
和@search
。
我假設未設置@search
。 嘗試使用@query
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.