如果关联不存在,则来自自身和关联的 ActiveRecord MySQL 查询"Like"检索空



我有以下范围:

scope :scope_name_or_email_search, lambda { |query = ''|
joins(:user_information)
.where('
users.email LIKE ? OR
user_informations.first_name LIKE ? OR
user_informations.last_name LIKE ?',
"%#{query}%", "%#{query}%", "%#{query}%")
}

此作用域仅检索具有"user_information"的用户。数据。
如果我搜索"@"仅限具有"user_information"的用户。数据被检索但是它们都有字符"@"在他们的邮件里。

最好的方法是什么?

解决方案非常简单。我需要在查询上留下一个连接,因此ActiveRecord范围将变为:

scope :scope_name_or_email_search, lambda { |query = ''|
left_joins(:user_information)
.where('
users.email LIKE ? OR
user_informations.first_name LIKE ? OR
user_informations.last_name LIKE ?',
"%#{query}%", "%#{query}%", "%#{query}%")
}

相关内容

  • 没有找到相关文章

最新更新