相关疑难解决方法(0)

如何在Arel和Rails中进行LIKE查询?

我想做的事情如下:

SELECT * FROM USER WHERE NAME LIKE '%Smith%';
Run Code Online (Sandbox Code Playgroud)

我在Arel的尝试:

# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql
Run Code Online (Sandbox Code Playgroud)

但是,这变为:

SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';
Run Code Online (Sandbox Code Playgroud)

Arel正确地包装查询字符串'Smith',但因为这是一个LIKE语句,所以它不起作用.

如何在Arel中进行LIKE查询?

PS奖金 - 我其实是想扫描桌子上两个字段,这两个名称和说明,看是否有查询的任意匹配.那会怎么样?

activerecord ruby-on-rails arel

111
推荐指数
2
解决办法
9万
查看次数

在Ruby on Rails中使用like query进行搜索

我是ROR开发的初学者.我有导航,我想在每个页面上搜索框,当我输入一些关键字时,它应该像在表格的字段中查询一样.我尝试使用一些在线教程,但无法做到.我的表名:这里的教程是导航栏上的搜索表单

<li><%= link_to 'Login', :controller => 'access', :action => 'login'  %></li>
<li><%= link_to 'Sign Up', :controller => 'users', :action => 'new'  %></li>
<li><%= link_to 'Logout', :controller => 'access', :action => 'logout'  %></li>
<div align="right">
<%= form_tag("/search", method: "get") do %>
  <%= label_tag(:q, "Search for:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器

class SearchController < ApplicationController 

  def show
    @tutorial = Tutorial.find(params[:q])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @tutorial }
    end
  end
end …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

1
推荐指数
1
解决办法
6670
查看次数

标签 统计

ruby-on-rails ×2

activerecord ×1

arel ×1

ruby ×1