Ruby on rails RubyonRails-模型索引搜索
我希望能够搜索和更新索引 这是我的控制器方法:Ruby on rails RubyonRails-模型索引搜索,ruby-on-rails,forms,search,models,Ruby On Rails,Forms,Search,Models,我希望能够搜索和更新索引 这是我的控制器方法: def index if params[:search] @ofertas = Oferta.search(params[:search]).paginate(page: params[:ofertas_page], :per_page => 5) else @ofertas = Oferta.all.paginate(page: params[:ofertas_page], :per_page =&g
def index
if params[:search]
@ofertas = Oferta.search(params[:search]).paginate(page: params[:ofertas_page], :per_page => 5)
else
@ofertas = Oferta.all.paginate(page: params[:ofertas_page], :per_page => 5)
end
end
我在模型中的搜索方法
def self.search(search)
where("titulo like ?","%w{search}%")
end
这是搜索表
<%= form_tag ofertas_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search], placeholder: "Procurar Entidades" %>
<%= submit_tag "Procurar", :name => nil %>
</p>
<% end %>
“get”do%>
零%>
我在许多搜索教程中看到过这种设置,但无论我键入什么,都不会显示任何内容。有人知道我做错了什么吗
where("titulo like ?","%w{search}%")
应该是:
where("titulo like ?", "%#{search}%")
#{xxx}
用于字符串插值-它允许您将ruby(包括变量)注入字符串
“%xxxx%”
告诉SQL搜索字符串可以出现在titulo列的任何位置。“%”是SQL中的通配符
%w{xxx yyy zzz}
是[“xxx”,“yyy”,“zzz”]
的缩写-Ruby中的一个数组,作为字符串本身对SQL没有多大意义
应该是:
where("titulo like ?", "%#{search}%")
#{xxx}
用于字符串插值-它允许您将ruby(包括变量)注入字符串
“%xxxx%”
告诉SQL搜索字符串可以出现在titulo列的任何位置。“%”是SQL中的通配符
%w{xxx yyy zzz}
是[“xxx”,“yyy”,“zzz”]
的简写形式-Ruby中的一个数组,作为字符串本身对SQL没有多大意义。看起来您试图在字符串中插入搜索变量,但没有得到正确的符号。这个怎么样:
"%#{search}%"
请注意,#
而不是w
看起来您试图在字符串中插入search
变量,但没有得到正确的符号。这个怎么样:
"%#{search}%"
注意#
而不是w