技術

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

関連記事

no image

[Rails]link_toをhelperから使う

こんばんは Railsでviewを作成している時に、helperからlink_t …

no image

rubyでシンボリックリンクを作成する

rubyでシンボリックリンクを作る機会がありました。 どちらも、srcへのシンボ …

[Rails] バージョン上げるときに気をつけること

どうも中田です。 セキュリティ診断とかで引っかかってrailsのバージョンあげた …

no image

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

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

Slack Tasker系アプリで絵文字ステータスを自動設定(android 「Automate」)

Slackの絵文字ステータス、皆さん使っているでしょうか? 私は自分の居る場所に …