Railsのmodelで長い文字列を扱う時はstringではなくtextを使おう

More than 1 year has passed since last update.

追記
Rails 4.2だとこの問題は解決されているようです。

Rails 4.2 で postgresql を使う場合の注意事項 - おもしろwebサービス開発日記

-

何かのトークンなんかを保存する時に、データ型をstringでやると、文字数が255より大きくになった時に死ぬ。

例えば、

rails generate User name:string token:string

みたいな感じでやると、

ActiveRecord::StatementInvalid: PG::StringDataRightTruncation: ERROR:  value too long for type character varying(255)

とか出てきて怒られた。(PG::StringDataRightTruncationとか出てきてるし、
PostgreSQLだけの話なのかもしれない。

ので、くっそ長い文字列をRailsで扱う時は、

rails generate User name:string token:text

みたいな感じで text でやってあげましょう。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.