技術

[Rails] モデルが初期化されてないとな(not initialized)

投稿日:

どうも中田です

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

こんな感じで ApplicationRecordinitialize もちゃんと呼んであげてください
今だに気をぬくとやってしまうので、次こそは!

-技術

執筆者:


comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[Rails] エラー unable to convert unpermitted parameters to hash について

こんにちは。佐藤です。 今回はRailsのpermit!についての備忘録です。 …

Google PolyをFusion360でお試し

Googleさんが公開した無料の3Dデータライブラリ Poly AR・VRアプリ …

no image

[Angular]複数のクエリパラメータを設定する

こんばんは angularで複数のクエリパラメータを設定したいと思います。 co …

no image

【Rails】そろそろデバッグしましょうか

どうも中田です。 今までrailsの開発はIDEを使わずテキストエディタだけでや …

no image

[Rails] deviseのパスワード認証を半角英数字だけ許可する

こんばんは ログイン機能を作る時ってdeviseが便利ですよね。 ですが、デフォ …