ruby-on-rails - Rails 正在缓存范围内的结果

标签 ruby-on-rails ruby-on-rails-3 activerecord

我有一个具有“摘要”范围的模型,该范围仅获取几个重要字段:

class Cupcake < ActiveRecord::Base
  scope :summary, select([:id, :name])
end

如果我调用这个作用域然后再调用

Cupcake.find(id)

我得到的记录只填充了 id 和 name 属性。

是否有一些选项可以传递给 find 命令以强制它转到数据库?此外,这些不应该生成完全不同的 sql 语句,因此 activerecord 将被迫转到数据库吗?

注意:我使用的是带有 pg gem 的 Rails 3.2.3

最佳答案

您可以使用未缓存的方法。参见 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/QueryCache.html#method-i-uncached

举个例子:

uncached_cupcake = ActiveRecord::Base.uncached do
  Cupcake.find(id)
end

希望这对您有所帮助。

关于ruby-on-rails - Rails 正在缓存范围内的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435731/

相关文章:

php - 检查 CI 查询是否有结果

Mysql::错误:重复条目

ruby-on-rails - 目录 : Listing of subrecords

ruby-on-rails - `before_create` 和 `after_create` 之间有什么区别以及何时使用哪个?

ruby-on-rails-3 - 如何在Rails中使用respond_to设置自定义Flash

ruby-on-rails - 载波 Excon::Errors::SocketError

javascript - 如何自动(每天)更新javascript/ruby​​变量?

ruby - 事件/观察者驱动的 Ruby on Rails

ruby-on-rails - logger.debug 不写入 Rails 中的日志文件

ruby-on-rails - 如何在 Ruby on Rails 中读取远程文件的内容?