[ActiveHash]今日のエラー


はじめに

本記事では、本日体験したActiveHashに関するエラーを記述いたします。
ケアレスミスですが、今後も注意するべき問題でしたので、備忘録として残します。

エラー紹介

早速ですが、エラーを紹介します。
とあるアプリケーションで、最終的な答えは以下の通りです。
ここについては、間違いはありません。
また、かなり省略していますが、コントローラーもビューもモデルも完成しており、
データを保存すること(createアクション)もできます。

class Claim < ActiveHash::Base
  self.data = [
    { id: 0, name:'--'},
    { id: 1, name:'着払い(購入者負担)'},
    { id: 2, name:'送料込み(出品者負担)'}
  ]

  include ActiveHash::Associations
  has_many :items

end
~省略~
<% @items.each do |item| %>
  <li class='list'>
    <div class='item-img-content'>
      <%= image_tag item.image, class: 'item-img' if item.image.attached? %>
        <div class='item-info'>
          <h1 class='item-name'>
            <%= item.item_name %>
          </h1>
        <div class='item-price'>
        <span><%= item.price %><br><%= item.claim.name %></span>
        </div>
      </div>
    </div>
  </li>
<% end %>
~省略~

間違えた点

実は、実装したての時、

class Claim < ActiveHash::Base
  self.data = [
    { id: 1, name:'--'},
    { id: 2, name:'着払い(購入者負担)'},
    { id: 3, name:'送料込み(出品者負担)'}
  ]

  include ActiveHash::Associations
  has_many :items

end

このような記述をしておりました。
id:1から記述しておりました。

そして、実装ができているかどうかを確認するため、
createアクションで、id:3を選択し、データを保存しました。

実装できたことを確認した後、id:1からになっていたことに気づき、
id:0からに修正しました。

宙に浮いたid:3

最後にもう一度、実装ができているか確認しようとしたところ、
エラーが起きることに気が付きました。
binding.pryで、
claimの中身を確認してもnil
nilは違うだろ、とツッコミを入れ続けて8時間。

過去を振り返ってようやく気がつきました。

実装後の修正

これは、かなり注意した方が良さそうです。
これに限らず、
戻って修正した際は、
いろんなものも付随して修正しなければならない可能性が大いにあります。

これからは修正した際、
修正箇所と関係を持っているものを注視して、実施していきたいと思います。

終わりに

やはり今日もエラー続きでした。
冷静になって考えれば、あっという間でしたが、
正直かなり冷静さを欠いていたと猛省しています。

プログラミングは、落ち着いて行わないと、
絶対にいい方向には、傾かない。

そう肝に銘じて、
明日も頑張ります!!