我有以下范围:
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}%")
}