【问题标题】:Ransack search for integer and string values from single search fieldRansack 从单个搜索字段中搜索整数和字符串值
【发布时间】:2015-01-24 17:22:31
【问题描述】:

我正在使用带有 Ransack 的 Rails 4。

我无法搜索整数和字符串值。

到目前为止,我尝试了这段代码。

在视图中:

<%= search_form_for @search do |f| %>
  <div class="field">
    <%= f.label :name_cont, "Nepieciešama meklēšāna pēc ID, vārda un telefona nr" %>         
    <%= f.text_field :name_or_phone_number_cont_or_id_eq, :placeholder => 'Meklēt pēc ID,vārda vai tel.nr.' %>
  </div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>

在控制器中:

 def index

    @search = Advertisement.search(params[:q])
    @advertisements = @search.result

   respond_with(@advertisements)
  end

这给了我错误:

未定义的方法 `name_or_phone_number_cont_or_id_eq' 用于

有没有办法解决这个问题? 或者我需要将 id 转换为字符串以进行搜索?

提前致谢。

【问题讨论】:

  • 我认为你必须使用f.search_field 而不是f.text_field。可以试试吗?
  • @Doguita 还是一样的错误。

标签: ruby-on-rails search ransack


【解决方案1】:

您需要将代码添加到模型中,以便能够搜索字符串和整数。

ransacker :id do
    Arel.sql("to_char(\"#{table_name}\".\"folio\", '99999999')")
  end

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 2013-03-02
相关资源
最近更新 更多