我有一个 User
模型,它具有 first_name
和 last_name
属性。使用 Arel 我想使用 CONCAT
执行全名搜索。我已经阅读了 How do I use functions like CONCAT(), etc. in ARel? 上的帖子这表明这是可能的,但我不能完全正确地使用语法。到目前为止我有
class User < ActiveRecord::Base
def self.search(query)
concat = Arel::Nodes::NamedFunction.new 'concat', [arel_table[:first_name], arel_table[:last_name]]
where ...?
end
end
最佳答案
对于最新的 Arel,需要使用 Arel::Nodes.build_quoted(' ')
而不仅仅是 String (' ')。所以现在的答案是:
SEPARATOR = Arel::Nodes.build_quoted(' ')
Arel::Nodes::NamedFunction.new(
'concat',
[arel_table[:first_name], SEPARATOR, arel_table[:last_name]]
)
关于ruby-on-rails - 在 Rails 4 中使用 `CONCAT` w/Arel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431714/