在我的 Rails 应用程序中,我有一个情节模型。每个剧集都有一个 boolean 属性 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
.
那么:如何制作一个复选框,例如“仅显示缓存 = true 的剧集”?
最佳答案
我自己找到了解决方案:
<%= f.check_box :cached_true %>
<%= f.label :cached_true %>
仅当您想要循环遍历几个元素并为每个元素添加一个复选框时,才需要 check_box_tag
。
关于ruby-on-rails - 如何使用 Rails Ransack 过滤 boolean 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23041462/