【发布时间】:2016-07-05 17:52:21
【问题描述】:
我有一个 users 表和一个 tasks 表,其模型具有以下关联:
class Task < ActiveRecord::Base
belongs_to :owner, class_name: User
end
我正在尝试构建一个查询来搜索task 的description 及其owner 的名称:
includes(:owner).where("LOWER(tasks.description) LIKE ? OR LOWER(owner.name) LIKE ?", "%#{q.downcase}%", "%#{q.downcase}%")
...但我不知道如何正确查询任务所有者的用户表。代替owner.name,我尝试了users.name、tasks.users.name,可能还有其他一些东西,但都无济于事。我该怎么做?
注意:我不想为此添加宝石。我正在寻找一种原生于 rails 的解决方案。
编辑:
存在于我的 schema.rb 中的外键
add_foreign_key "tasks", "users", :name => "tasks_owner_id_fk", :column => "owner_id", :dependent => :nullify
第二次编辑:
我还需要一个返回 AREL 的解决方案。我可以通过返回一个对象数组来实现它,但是我需要在结果中添加其他查询方法,所以它必须是 AREL。
【问题讨论】:
标签: sql ruby-on-rails activerecord