【问题标题】:How to filter boolean attribute with Rails Ransack?如何使用 Rails Ransack 过滤布尔属性?
【发布时间】:2014-05-27 07:31:04
【问题描述】:

在我的 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 %>

在&lt;%= f.check_box_tag :cached_true, 1, :checked =&gt; @query.cached_true %&gt; 中,我试图获得一个复选框来执行我上面描述的操作。但是它不起作用。上面写着undefined method 'cached_true' for nil:NilClass。

那么:如何制作像 “仅显示缓存 = true 的剧集”这样的复选框?

【问题讨论】:

    标签: ruby-on-rails search checkbox boolean ransack


    【解决方案1】:

    自己找到了解决方案:

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

    check_box_tag 仅在您想要遍历几个元素并为每个元素添加一个复选框时才需要。

    【讨论】:

      【解决方案2】:

      您使用两个实例变量:@query 和 @search。
      我假设 @search 没有设置。请改用@query。

      【讨论】:

      • 感谢您的提示!我调整了上面的帖子,因为它没有解决问题:将错误更改为unknown check_box_tag。
      猜你喜欢
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 2012-08-18
      • 2021-05-14
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多