【发布时间】:2011-12-13 04:06:11
【问题描述】:
我的数据库表有一列可以包含大量数据。 我不希望这些数据成为相应 rails 对象(模型)的一部分。
如何在模型中告知我不想将此字段存储在内存中?
最初这是因为我有一个大于 4k 的会话,并且 rails 引发了 ActionController::Session::CookieStore::CookieOverflow 异常。
感谢您的帮助, 迈克尔。
【问题讨论】:
标签: ruby-on-rails cookies
我的数据库表有一列可以包含大量数据。 我不希望这些数据成为相应 rails 对象(模型)的一部分。
如何在模型中告知我不想将此字段存储在内存中?
最初这是因为我有一个大于 4k 的会话,并且 rails 引发了 ActionController::Session::CookieStore::CookieOverflow 异常。
感谢您的帮助, 迈克尔。
【问题讨论】:
标签: ruby-on-rails cookies
您必须通过查找选项:select 明确指定列。
但是,不鼓励在会话中存储模型。在会话中仅存储对象 ID 并将模型对象本身保存在 Rails.cache 中怎么样?
【讨论】:
加载模型时,您可以显式设置要选择的列并跳过大列:
MyModel.find(id, :select => 'column1, column2, column3')
【讨论】: