【问题标题】:In Rails 5, how do I write a finder "like" query on a member field?在 Rails 5 中,如何在成员字段上编写查找器“like”查询?
【发布时间】:2020-02-21 17:26:48
【问题描述】:
我正在使用 Rails 5。我如何拥有这个模型...
类书has_one :author
作者类有一个属性“name”。如何为作者包含字符串“Joe”的书籍对象编写查询?我试过这个
Book.includes(:author).where(:author => [ "LOWER(name) LIKE :search", :search[Dch => "%joe%"])
但没有骰子。
【问题讨论】:
标签:
ruby-on-rails-5
sql-like
finder
【解决方案1】:
尝试:
Book.joins(:author).where('LOWER(authors.name) LIKE ?', '%joe%')
plural_table_name.column_name LIKE ... 语法应该可以工作。
在这种情况下,您不能使用哈希参数来调用 where,因为您使用 LIKE 运算符进行查询。
请注意,我已将您的 includes 更改为 joins,因为我不知道您是否会在获得查询结果后调用“子”列。 joins 足以添加 INNER JOIN 子句并获得对作者列的访问权限。