首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails搜索类似查询

问Rails搜索类似查询
EN

Stack Overflow用户
提问于 2014-08-25 12:48:16
回答 5查看 2.1K关注 0票数 1

我正在尝试使用以下方法进行搜索查询

我有以下表格

代码语言:javascript
复制
<%= 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 %>

控制器

代码语言:javascript
复制
@query = params[:query]
    # @venues = Venue.where({ :name => "#@query" })
    @venues = Venue.find(:all, :conditions => ["name LIKE #{@query}"])

    render plain: @venues.to_yaml

误差

代码语言:javascript
复制
Couldn't find all Venues with 'id': (all, {:conditions=>["name LIKE ooty"]}) (found 0 results, but was looking for 2)
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-25 12:55:19

我就是这样做的。使用?可以让Rails处理sql注入的内容。

代码语言:javascript
复制
@venues = Venue.where('name LIKE ?', "%#{@query}%")
票数 5
EN

Stack Overflow用户

发布于 2014-08-25 12:56:03

尝尝这个,

代码语言:javascript
复制
 @venues = Venue.where("name like ?", "%#{@query}%")

为了避免sql注入,使用?和% term %在查询中进行搜索。

票数 4
EN

Stack Overflow用户

发布于 2014-08-25 12:49:37

正确的语法应该是name LIKE '%ooty%',不使用%的LIKE与=相同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25486336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档