如果你可以帮助我,我会徘徊。我需要使用我的DB,Cod +编号的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 + number。
模型
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 + number?提前谢谢!
更新(已解决)
在我的观点中,我使用
.concat(items.cod, to_char(items.num, 'fm000'::text)) AS codigo
答案 0 :(得分:1)
如果我正确理解您的问题,您需要查询两列的连接值。
在MySQL中,使用像
这样的CONCAT()函数where("concat(code,number) LIKE :s_c",s_c: "%#{s_cod}%")
我相信PostgreSQL应该是类似的,但我并不是100%熟悉语法