在我的Rails应用程序中,我有一个剧集模型。每集都有一个布尔属性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
。
所以:我怎样才能创建一个像这样的复选框“只显示cached = true的剧集”?
答案 0 :(得分:3)
自己找到解决方案:
<%= f.check_box :cached_true %>
<%= f.label :cached_true %>
仅当您想循环浏览几个元素并为每个元素添加一个复选框时,才需要check_box_tag
。
答案 1 :(得分:0)
您使用两个实例变量:@query
和@search
我认为没有设置@search
。请改为@query
。