我正在尝试使用以下方法进行搜索查询
我有以下表格
<%= form_tag "/search", :method => 'get', :id => 'header-search', :class => 'navbar-form navbar-left', :role => 'search' do %>
<div class="form-group">
<%= text_field_tag :query, params[:query] ,:class => "form-control header-search-input", :placeholder => "Looking for..." %>
</div>
<% end %>控制器
@query = params[:query]
# @venues = Venue.where({ :name => "#@query" })
@venues = Venue.find(:all, :conditions => ["name LIKE #{@query}"])
render plain: @venues.to_yaml误差
Couldn't find all Venues with 'id': (all, {:conditions=>["name LIKE ooty"]}) (found 0 results, but was looking for 2)发布于 2014-08-25 12:55:19
我就是这样做的。使用?可以让Rails处理sql注入的内容。
@venues = Venue.where('name LIKE ?', "%#{@query}%")发布于 2014-08-25 12:56:03
尝尝这个,
@venues = Venue.where("name like ?", "%#{@query}%")为了避免sql注入,使用?和% term %在查询中进行搜索。
发布于 2014-08-25 12:49:37
正确的语法应该是name LIKE '%ooty%',不使用%的LIKE与=相同。
https://stackoverflow.com/questions/25486336
复制相似问题