技術

[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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

Sequel Proで本番DBに接続できない!

こんにちは。たなかです。 最近はDIY記事ばかりでしたので、久々にエラー解消記事 …

no image

【Angular】component.htmlをprettierで整形する

こんにちは 今回はcomponent.htmlをprettierで整形する方法を …

Google Web Developers便利なコマンドラインAPIの使い方

こんにちは。佐藤です。 今回はGoogle Web Developersで使える …

no image

TypescriptでMap使用時にコンパイルエラー

こんにちは 連想配列で重複を省く処理をしたい時にMapを使用することがあります。 …

LINE BOTを無料で試してみました。heroku + Rails

こんばんは たまにはエンジニアっぽいところを見せようと思い、遅ればせながら、流行 …