Rails中两个属性的字符串连接查询

时间:2015-06-22 22:49:50

标签: ruby-on-rails ruby-on-rails-3 activerecord

假设我有一个用户的first_namelast_name。我知道用户的全名是“Johnny Appleseed”,因为我有一个用户全名作为字符串的大哈希。

当然,我可以先拆分每个字符串,然后像这样搜索: User.where(first_name: 'Johnny', last_name: "Appleseed")

但是,我想知道是否有办法在查询中基本连接两者,基本上是这样的: User.where('first_name + last_name = ?', 'Johnny Appleseed')

或者,如果我可以在User模型上使用full_name方法,并按此搜索?

 def full_name
    "#{self.first_name} #{self.last_name}"
  end

User.where('full_name = ?', 'Johnny Appleseed')

1 个答案:

答案 0 :(得分:3)

可能最简单的解决方案是:

User.where(%q(concat_ws(' ', first_name, last_name) = ?), 'Johnny Appleseed')