【问题标题】:ROR + Ransack: Rendering selected search parametersROR + Ransack:渲染选定的搜索参数
【发布时间】:2017-10-13 16:59:08
【问题描述】:

我正在尝试渲染传递给 ransack 搜索的搜索参数字符串。

但是,我想不出一种方法来检测搜索中是否包含特定属性。下面的代码有效,但如果参数为空,则不会隐藏按钮。

articles/browse.html.erb

  <% if params[:q].present? == true %>
    <button type="button" class="btn btn-outline-primary btn-lg"><%= params[:q][:title_cont] %></button>
    <button type="button" class="btn btn-outline-primary btn-lg"><%= params[:q][:categories_name_cont] %></button>
    <button type="button" class="btn btn-outline-primary btn-lg"><%= params[:q][:user_name_cont] %></button>
  <% end %>

我尝试使用以下条件,但出现此错误:undefined method [] for nil:NilClass

 <% if params[:q][:title_cont].present? == true %>

文章控制器

  def browse
    @q = Article.ransack(params[:q])
    @articles = @q.result.includes(:categories, :users)
  end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 ransack


    【解决方案1】:

    我通过更改 &lt;% if params[:q][:title_cont].present? == true %&gt; 修复了它

    &lt;% if @q.title_cont.present? == true %&gt;

    browse.html.erb

        <% if @q.title_cont.present? == true %>
          <button type="button" class="btn btn-outline-primary btn-lg"><%= params[:q][:title_cont] %></button>
        <% end %>
        <% if @q.categories_name_cont.present? == true %>
          <button type="button" class="btn btn-outline-primary btn-lg"><%= params[:q][:categories_name_cont] %></button>
        <% end %>
        <% if @q.user_name_cont.present? == true %>
          <button type="button" class="btn btn-outline-primary btn-lg"><%= params[:q][:user_name_cont] %></button>
        <% end %>
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多