2017-09-26 5 views
0

このようなRailsモデルで列挙型の値をフリーズできますか?Railsで列挙型の値が変わるのは何ですか?

enum level: {beginner: 0, advanced: 1, expert: 2}.freeze 
# or 
enum level: [:beginner, :advanced, :expert].freeze 

値は変更されません。私たちが凍結すれば性能は変わるでしょうか?

答えて

0
  • あなたはまだ、実行時にそれを変更することができます定数を作成するとき。
  • フリーズを使用すると、実際には の定数を作成できます。したがって、フリーズしたアイテムを変更しようとすると、 RuntimeErrorが表示されます。
  • あなたはRubyのアプリが 減少にあなたが 法(「foobarに」)のような メソッド呼び出しを行うcreated.Every時間あるオブジェクトの数であるスピードアップするためにできる最善のものの
  • 一つ、あなた新しいStringオブジェクトを作成しています。これはパフォーマンスに影響します。
  • 我々は文字列リテラルを凍結した場合は、Rubyインタプリタだけ 1つのStringオブジェクトを作成し、明らかに凍結 を使用してuse.So将来のためにそれをキャッシュしますが、パフォーマンスが向上し
関連する問題