【问题标题】:Add Attribute to ActiveReccord after query查询后向 ActiveRecord 添加属性
【发布时间】:2015-02-05 21:18:59
【问题描述】:

这就是我想要做的:我有一个带有属性的用户模型:name、:lastame 和:email。经过如下方法:

providers = User.find_by_sql [ query ]

我希望提供者中的所有用户都包含一个新属性 :location。

这可能吗?

【问题讨论】:

  • “包含一个新属性”是什么意思?如果您能描述一下您以后想如何使用 User 对象(以及它与其他 User 对象的行为方式有何不同),也许会有所帮助。
  • 不同之处在于find_by_sql之后我应该能够做到@user.location。但不是在 find_by_sql 之前。
  • @user.location 会返回什么?
  • 让我们从查询中说 count(some_column)

标签: sql ruby-on-rails activerecord attr


【解决方案1】:

在这种情况下,最简单的方法是在 SELECT 子句中简单地添加您想要的值作为列别名。

providers = User.find_by_sql "SELECT *, 'The Moon' AS location FROM users"
puts providers.first.location
# => "The Moon"

【讨论】:

  • 感谢@Jordan。这成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多