どうも中田です
Railsで、modelの initialize
に処理を追加することってよくあるんですが、
エラー出てアレ?ってなることがあって。。
何度もやってるので忘れないようにアウトプット!
例えばこんなの
class TestModel < ApplicationRecord def initialize(parameters = {}) @data = parameters.delete(:data) end ... end
これだとうまく動かないんですよね
byebugとかでデバッグしてみると
(byebug) self #<TestModel not initialized>
あー、あー、なんだっけー、あー
superがないんだ! って話です。
class TestModel < ApplicationRecord def initialize(parameters = {}) @data = parameters.delete(:data) super(parameters) end ... end
こんな感じで ApplicationRecord
の initialize
もちゃんと呼んであげてください
今だに気をぬくとやってしまうので、次こそは!