Railsでsession storeにactive_recordを使う方法と型の注意点(特にフォームが多い時とかに)


この記事の所要時間: 219

Railsでsessionをactive_recordを使って管理をするときにちょっとデータベースの型で詰まったのでメモします。

 環境

Ruby 2.1.2
Rails 4.1.6
MySQL

activerecord-session_store

gem  activerecord-session_storeを入れる。Gemfileに追記してbundle installします。

active_recordをsession_storeに設定

次にsession_store.rbで:active_record_storeを設定します。デフォルトでは:cookie_storeとなっています。

rb:config/initializers/session_store.rb

 マイグレーション

セッションを管理するテーブルを作ります。

マイグレーションファイルが作られますがここで自分の環境ではですが注意すべきことありました。最初、dataカラムを普通にtext型だけでやっていたのですが、それだとフォームが多すぎるせいか以下のエラーが頻発しました。データが大きすぎるそうです。

 なので、MySQLのlongtext型をつかうためにtextにlimitを設定しました。

ちなみに

 だそうです。

これでエラーはでなくなりました。
あとはマイグレート実行してOKです。

再起動はしといてください。

参考

Rails4でsession storeをActiveRecordに変更 | EasyRamble
http://easyramble.com/rails-active-record-session-store.html
Rails 3 Migration with longtext – Stack Overflow
http://stackoverflow.com/questions/4443477/rails-3-migration-with-longtext

 

投稿者紹介

疋田駿
Unicast Inc. ソフトウェアエンジニアRuby,Rails,React,Redux,ReactNative,Android,Elasticsearch,Dockerとか触りながら生計を立ててる。Thinkpad×fedora。ErgoDox愛好家な一児の父。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP