2014-04-13 22 views
2

在我的Rails應用程序中,我有一個插曲模型。每集都有一個布爾屬性cached,它將該集標記爲已緩存。如何用Rails Ransack過濾布爾屬性?

所以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的劇集」?

回答

3

找到解決自己:

<%= f.check_box :cached_true %> 
<%= f.label :cached_true %> 

的如果你通過幾個要素要循環,並添加一個複選框爲他們每個人只需要。

0

您使用兩個實例變量:@query@search
我假設沒有設置@search。改爲嘗試@query

+0

感謝您的提示!我調整了上面的帖子,因爲它沒有解決問題:將錯誤更改爲「未知check_box_tag」。 – funkenstrahlen