我正在尝试查询数据库,因为这个问题中谈到了 rails3-jquery-autocomplete gem Rails gem rails3-jquery-autocomplete: How do I query multiple fields
User.select("first_name, last_name, login, id").where(["CONCAT_WS(' ', first_name, last_name, login) LIKE ?", "%#{parameters[:term]}%"])
这对于我需要它做的事情来说工作得很好,但我觉得我的 Rails 应用程序中有明确的 MYSQL 代码是脏的,我想知道是否有一种与数据库无关的方式来制定上述查询?如果没有,是否有不支持某种连接功能的数据库?
我不能使用虚拟属性,因为 gem 需要查询数据库。
或者,我打算向用户模型本身添加一个名为 full_name 的额外列,并使用虚拟属性将其分为 first_name 和 last_name,但我更喜欢其他解决方案。
最佳答案
我会按照你的方式去做。虚拟属性在我看来 一个很好的解决方案。所以你可以将数据库与你的 应用逻辑。考虑更改您的数据库后端。
恕我直言
否则 - 在选择字段中使用别名进行连接是否有效?
像 concate( firstname, ' ', ... ) as virtualfieldname ... 这样的东西?
关于mysql - 连接 ActiveRecord 中的列 :where call in rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110243/