ruby-on-rails - 是否有内置方法从数据库中获取单个 ActiveRecord 属性(忽略内存中的值)?

标签 ruby-on-rails ruby activerecord ruby-on-rails-2

重要警告:我们在我的公司使用 Rails 2。所以我正在寻找来自 ActiveRecord 2 的答案(如果存在的话)。

ActiveRecord 中是否已经包含一种方法来从数据库中获取属性的最新值,而无需调用 reload 或覆盖当前内存中的值?

例如:

p = Person.find(123)

# Now the in-memory value is "Joe", which would be overwritten
# if I called reload
p.nickname = "Joe"

# I want something like this to execute the equivalent of:
# SELECT 'nickname' FROM persons WHERE id = 123;
nickname_from_db = p.get_current_value(:nickname)

我意识到我的要求很容易实现;如果已经有一个 ActiveRecord 方法可以满足我的要求,我只是不想重新发明轮子。

最佳答案

您可以使用选择选项。

Person.find(123, :select => "昵称")

关于ruby-on-rails - 是否有内置方法从数据库中获取单个 ActiveRecord 属性(忽略内存中的值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15148812/

相关文章:

ruby - 如何通过网络获取所有 gem 名称?

ruby - 如何使用 elasticsearch-model 创建索引,批量索引不起作用

ruby-on-rails - 使用多个条件创建 ActiveRecord 范围

ruby-on-rails - 具有 has_and_belongs_to_many 的 ActiveModel 序列化程序

ruby - 删除 Ruby 数组中相邻的相同元素?

ruby-on-rails - 在 Rails 中创建制表符分隔的 ASCII 文件

ruby - ROR + 来自 XML API 的 Ruby 日期

ruby-on-rails - 如何在方法而不是数据库列上使用 where 子句?

ruby-on-rails - Rails 中的页面缓存

ruby-on-rails - Ruby 中是否有与 slice 函数相反的函数?