2009-05-17 10 views
0

My DBテーブルには、非常に大きな量のデータを含むことができる列があります。 このデータは、対応するレールオブジェクト(モデル)の一部ではありません。rails:モデルにいくつかのdb属性を含める方法

このフィールドをメモリに保存したくないということをモデルでどのように伝えますか?

これは、私がセッションを4kより大きくし、レールがActionController :: Session :: CookieStore :: CookieOverflow例外を発生させるという事実から来ています。

あなたのお手伝いをありがとうございます。 Mickael。あなたのモデルをロードするとき

答えて

1

あなたが見つける-オプション:selectを経由して列を明示的に指定する必要があるだろう。 しかし、セッションにモデルを格納することはお勧めしません。セッションにobject-idだけを格納し、モデルオブジェクト自体をRails.cacheに保持する方法はありますか?

+0

セッションに保存するとデータの有効性が危うくなります。手動で行う場合を除き、データベース内のデータが変更された場合、セッションのモデルは更新されませんので、すべての種類の奇妙なものになります – srboisvert

+0

セキュリティの観点から見れば、なぜ悪い考えであるのか、もう少し詳しく見てください:http://www.rorsecurity.info/the-book/ – srboisvert

1

あなたは明示的には大規模な列を選択してスキップする列を設定できます

MyModel.find(id, :select => 'column1, column2, column3') 
関連する問題