私は現在、Railsモデルで「store」を使用してさまざまなものをハッシュに永続化しています。これは、このデータに対して多くの個別の属性を作成する必要がなく、シリアル化/逆シリアル化するので便利です。また、必要に応じて個々のハッシュ属性に簡単にアクセスできます。コードスニペット(簡略化):
class Request < ActiveRecord::Base
attr_accessible :data
# Data is a nested hash
store :data
# Validation
validates_presence_of :data
end
:dataが非常に大きくなる場合(他のトピック全体)、この設計は理想的ではない可能性があることを認識していますが、それまでの間、次のことを知りたいと思います。
- 'テキスト'列のデフォルトの最大サイズはいくつですか?私は現在PostGresDBを使用しており、舞台裏でVARCHARを使用していると思いますが、この列の最大サイズが実際にDBにあるかどうかわかりませんか?
- Rails移行create_tableコードでこの:dataテキスト列の最大サイズを明示的に設定できますか?
- この:data属性が大きすぎるレコードを保存しようとすると、Railsは何をしますか?研究はそれがそれを切り刻むと信じて、それが収まるものを保存するように私を導きます(非常に悪いです!)
- 潜在的なハッシュ破損から保護し、DBに保存する前に:data size <MAX許容サイズを検証するにはどうすればよいですか?