どうも中田です
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 もちゃんと呼んであげてください
今だに気をぬくとやってしまうので、次こそは!










