【发布时间】:2016-11-28 12:13:42
【问题描述】:
我有一个如下所示的 Book 模型:
class Book < ActiveRecord::Base
belongs_to :author, class_name: 'User', touch: true
belongs_to :translator, class_name: 'User'
end
如何搜索具有特定作者姓名的书籍?我先加入表格:
Book.joins(:author).joins(:translator)
但我不能链接
.where('authors.name = "Tolkien"')
因为数据库中没有“authors”表。是
.where('users.name = "Tolkien"')
这里有安全的方法吗?译者和作者实际上都是用户,是否没有风险? (select() 方法不是一个选项,我需要 activerecord::relation)
【问题讨论】:
-
请分享数据库结构。如果这本书有两位作者,会发生什么? 三个翻译?
-
您可以使用
where({author: {name: 'Jon'}, translator: {name: 'Doe'}})或手动编写连接并手动为其命名。
标签: mysql ruby-on-rails ruby activerecord