在 Rails 5,如何在成员字段上编写 finder "like" 查询?

In Rails 5, how do I write a finder "like" query on a member field?

我正在使用Rails 5.我怎么会有这个模型...

class 图书 < ApplicationRecord

has_one :author

作者 class 有属性 "name"。如何为作者包含字符串 "Joe" 的书籍对象编写查询?我试过这个

Book.includes(:author).where(:author => [ "LOWER(name) LIKE :search", :search[Dch => "%joe%"])

但没有骰子。

试试:

Book.joins(:author).where('LOWER(authors.name) LIKE ?', '%joe%')

plural_table_name.column_name LIKE ... 语法应该有效。

在这种情况下,您不能使用散列参数来调用 where,因为您正在使用 LIKE 运算符进行查询。

请注意,我已将您的 includes 更改为 joins,因为我不知道您是否会在获得查询结果后调用 "child" 列。 joins 足以添加 INNER JOIN 子句并获得对作者列的访问权限。