POSO
@POSO

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

idにnameをつけて文字を表示させようとするとエラーが起こる

解決したいこと

idの中身のnameを表示させようとするとエラーが起こってしまいます

発生している問題・エラー

<% @items.each do |item| %>
<%= item.category_id %>
<%= item.brand_id %>
<% end %>

これだとエラーは起こらず、数字が表示されますが

<% @items.each do |item| %>
<%= item.category_id.name %>
<%= item.brand_id.name %>
<% end %>

だと
スクリーンショット 2021-11-22 16.27.33.png
このようなエラーが出ます

class Item < ApplicationRecord
  belongs_to_active_hash :category
  belongs_to_active_hash :brand
end

itemのモデルはこれで

class Category < ActiveHash::Base
  self.data = [
    { id: 0, name: '--' },
    { id: 1, name: 'サンプル' },
    { id: 2, name: 'sample' },
  ]
end

カテゴリはこうです

 t.integer :category_id,            null: false

マイグレートはこうです

自分で試したこと

誤字の確認

0

2Answer

item.category_idはIntegerクラスなのでnameメソッドは持たないということです。

ActiveHashは詳しくないのですが、item.category.nameではありませんか?

0Like

Comments

  1. @POSO

    Questioner

    ありがとうございました
<%= item.category.name %>
<%= item.brand.name %>

かと思います。

itemに紐付いているcategoryのnameを取得というイメージだと思います
(間違えていたらすみません🙇‍♂️)

0Like

Comments

  1. @POSO

    Questioner

    ありがとうございました

Your answer might help someone💌