[英]Search using 2 fields concatenated in one ruby
如果您能帮助我,我在徘徊。 我需要使用我的数据库的2个字段(Cod +数字)进行搜索。 我在前一栏中展示了这一点。 鳕鱼ACE +数字003,它显示ACE003,因此如何在一个文本字段中搜索两个选项。 现在,如果您在该字段中输入ACE003,则不会返回任何内容,但是,如果您键入ACE,它当然可以工作。 这是我的代码。
的index.html
<%= text_field_tag :s_cod, params[:s_cod] %>
<% @items.each do |item| %>
<tr>
<td><%= item.cod + '%03d' % item.num.to_s %></td>
...
调节器
if (params[:s_cod] != nil) or (params[:s_rotulo] != nil) or (params[:s_den_cont] != nil) or (params[:s_marca] != nil)
@items = View_item.all.order("date_expired ASC").page(params[:page]).per(15).search(params[:s_cod], params[:s_rotulo], params[:s_den_cont], params[:s_marca])
您可以看到许多我用来搜索的字段。 我必须使用一个字段来搜索cod +数字。
模型
def self.search(s_codigo, s_rotulo, s_den_cont, s_marca)
where("cod ilike :s_c and rotulo ilike :s_r and den_cont ilike :s_d and marca ilike :s_m", s_c: "%#{s_cod}%", s_r: "%#{s_rotulo}%", s_d: "%#{s_den_cont}%", s_m: "%#{s_marca}%")
end
如何使用一个文本字段按cod +数字进行搜索? 提前致谢!
更新(已解决)
在postgress数据库中,我认为
.concat(items.cod, to_char(items.num, 'fm000'::text)) AS codigo
如果我正确理解了您的问题,则需要查询两列的连接值。
在MySQL中,使用CONCAT()函数,例如
where("concat(code,number) LIKE :s_c",s_c: "%#{s_cod}%")
我认为PostgreSQL应该类似,但是我不是100%熟悉语法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.