mysql - 连接 ActiveRecord 中的列 :where call in rails

标签 mysql ruby-on-rails activerecord

我正在尝试查询数据库,因为这个问题中谈到了 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/

相关文章:

mysql - 快速学习关系数据库设计有哪些好的引用资料?

javascript - Rails - 从 javascript 调用 Controller

ruby-on-rails - 在同一模型上具有多个关联的多态关联

php - 登录 yii 后使用额外的数据库

mysql - 如何使用mysql在同一存储过程中使用插入和更新查询?

mysql - MySQL基于列的唯一值获取唯一行

ruby-on-rails - 如何设置 Rails ActionMailer 的优先级

activerecord - 如何使用 Elasticsearch gem 和delayed_job 异步索引 ActiveRecord 模型

php - 当我更新页面时出现错误

mysql - 在没有表单的情况下在 Rails 中发出 AJAX 请求