簡體   English   中英

如何使用Rails Ransack過濾布爾值屬性?

[英]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.

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