如何在rails中使用like子句查询?

2024-06-24

我想在搜索关键字时获得 json 格式的数据,所以我使用 LIKE 子句并像这样查询

"select * from employees where fname like ? or mname like ? or lname like ? or username like ? or id like ?", str, str, str, str, str

但我想使用 Rails 对其进行编码。我的控制器中有这段代码

def showemployees
  str = params[:str]
  render json: @employee = Employee.where(Employee.employees[:fname].matches("%#{str}%")) or
    (Employee.employees[:mname].matches("%#{str}%")) or
    (Employee.employees[:lname].matches("%#{str}%")) or
    (Employee.employees[:id].matches("%#{str}%"))
end

这段代码在我的 config/routes.rb 中

get 'employees/showemployees'
root :to => 'employees#new'
resources :employees
post 'employees/update_info'

当我输入这个时http://localhost:3000/employees/showemployees?str=samplename http://localhost:3000/employees/showemployees?str=samplename,应该会出现 json 格式的记录,但我收到此错误消息

undefined method `employees' for #<Class:0x8e38900>
app/controllers/employees_controller.rb:6:in `showemployees'

其中第 6 行有此代码

render json: @employee = Employee.where(Employee.employees[:fname].matches("%#{str}%")) or

您可以链接 where 查询,但是这个AND每个where查询结果

Employee.where('fname LIKE ?', "%#{str}%").where('lname LIKE ?', "%#{str}%").where('mname LIKE ?', "%#{str}%").where('username LIKE ?', "%#{str}%").where('id LIKE ?', "%#{str}%")

或使用OR clause

Employee.where('fname LIKE ? OR lname LIKE ? OR mname', "%#{str}%", "%#{str}%", "%#{str}%")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在rails中使用like子句查询? 的相关文章

随机推荐

  • 更改 Google Play 服务 AccountPicker 对话框的样式

    我正在显示 AccountPicker 对话框Google Play Services用这个代码 String accountTypes new String com google Intent intent AccountPicker n
  • C++ 中带有空尖括号的 template<> 是什么意思?

    template lt gt class A some class data 这种代码我见过很多次了 有什么用template lt gt 在上面的代码中 什么情况下我们需要强制使用它 template lt gt 告诉编译器接下来是模板专
  • 实现c#超时

    使用这样的 while 循环是不好的做法吗 也许使用秒表更好 或者这个解决方案可能有一些陷阱 public void DoWork do some preparation DateTime startTime DateTime Now in
  • C# 中的线程

    如何在 C 中使用线程调用带有两个参数的函数 我必须从另一个函数调用 StartDNIThread string storeID string queryObject 我必须传递两个值 两者都是字符串 您的选择是 将参数封装在一个新类中 并
  • 如何始终将属性附加到 Laravel Eloquent 模型?

    我想知道如何始终将一些数据附加到 Eloquent 模型中 而不需要询问它 例如 在获取帖子表单数据库时 我想将每个用户的用户信息附加为 id 1 title My Post Title body Some text created at
  • 为什么 bash for 循环出错?

    我正在尝试使用 for 循环运行以下代码 但出现语法错误 请帮忙 输入格式 输入的第一行包含一个整数N 表示整数的个数 下一行包含 N 个空格分隔的整数 它们构成数组 A read n sum 0 for i 1 i lt n i do r
  • 为什么这段代码总是产生输出为“?”

    众所周知 java遵循unicode系统 支持多种语言的所有字母表 我搜索发现 的Unicode值为2309 的Unicode值为2310 它们是DEVANAGRI语言的字母 我写的代码是这样的 class Test public stat
  • 如何将 python csv.DictReader 与二进制文件一起使用? (针对babel自定义提取方法)

    我正在尝试为 babel 编写一个自定义提取方法 以从 csv 文件中的特定列中提取字符串 我按照文档进行操作here http babel pocoo org en latest messages html writing extract
  • ModuleNotFoundError:没有名为“schedule”的模块

    我有导入时间表的Python程序 import schedule 在开头 使用 python3 命令执行代码没有问题 但从其他 python 文件启动它call sudo python3 ProgramWithSchedule py she
  • 备用 Couchbase UI [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道除了安装 Couchbase 时提供的官方用户界面之外是否还有其他 Couchbase 用户界面
  • 更新 MongoDB 中精确元素数组中的字段

    我有一个结构如下的文档 id 43434 heroes nickname test items nickname test2 items Can I set的第二个元素items数组中嵌入对象的数组heros with nickname t
  • Git分支切换不会改变代码文件夹文件

    这是后续this https stackoverflow com questions 9406651 code base for git master feature branch问题 我使用克隆了远程主项目文件夹git clone ema
  • 将 NSString 分成行(以适合所需的宽度)

    我正在尝试将 NSString 分成几行以适合所需的宽度 因为它会发生在内部 sizeWithFont constrainedToSize 有没有比猜测中断发生在哪里更好的方法呢 sizeWithFont If NSLayoutManage
  • Python 在列表列表中查找值

    最近我必须找到某个列表中的某些内容 我使用了 def findPoint haystack needle haystack 1 2 3 4 5 6 7 8 9 for x in range len haystack if needle in
  • 从 SERVICE 执行 COMPONENT 方法

    我正在尝试执行一个组件method from a 服务方式 我看到了另外 2 个线程 Link1 如何从服务调用组件方法 https stackoverflow com questions 40788458 how to call comp
  • Vuetify 连接 v-select 的 item-text 中的两个字段

    有没有办法在 v select 的项目文本字段中将两个字段连接在一起 我让它适用于下拉列表值 但可见条目不显示这两个字段 问题出在这里 item text data item name data item group Code
  • MageUI.exe 删除 CompatibleFrameworks 元素

    我们使用 MageUI exe 手动创建不同版本的 ClickOnce 部署 以进行开发 测试和生产 我们改变出版商以便使程序图标出现在 开始 菜单的单独文件夹中 我们使用MageUI exe版本适用于 Windows 7 和 NET Fr
  • Blazor EditForm 从列表绑定

    我正在尝试制作一个页面来编辑客户数据 客户对象有一个电话号码 字符串 列表 因为大多数人都有固定电话和手机 我似乎找不到一种方法将其放入编辑表单中 我尝试使用 foreach 循环 但它无法绑定到此 我还尝试在循环中使用本地副本并绑定到它
  • 单击按钮时如何更改按钮的背景颜色?

    我研究了很多 发现这个 JSFiddle http jsfiddle net eYgdm 看起来像我需要的 但是 当我单击按钮时 page背景正在改变 我想要button s相反 单击时要更改颜色 div width 100 height
  • 如何在rails中使用like子句查询?

    我想在搜索关键字时获得 json 格式的数据 所以我使用 LIKE 子句并像这样查询 select from employees where fname like or mname like or lname like or usernam