ryou19861210
@ryou19861210

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!

ActiveModel::UnknownAttributeErrorの解消について

プログラミング初学者・初質問です。
宜しくお願い致します。

解決したいこと

フリマアプリの商品出品機能を実装中です。
ActiveHashを使用して実装したところ、商品出品ボタンを押すとデータが保存されずエラーが発生してしまいます。
既出の解答内容も見てみたのですが、解決することができませんでした。
何卒、宜しくお願い致します。

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

スクリーンショット 2022-06-14 12.00.47.png
スクリーンショット 2022-06-14 12.08.02.png

該当するソースコード

item_controller.rb
class ItemsController < ApplicationController

  def index
    @items = Item.all
  end

  def new
    authenticate_user!
    @item = Item.new
  end

  def create
   @item = Item.new(item_params)
   if @item.save
      redirect_to root_path
   else
      render :new
   end
  end

  private

  def item_params
    params.require(:item).permit(:name,:profile,:categorygenre_id,:statusgenre_id,:sendpricegenre_id,:placegenre_id,:scheduleday_id,:price,:image).merge(user_id: current_user.id)
  end
end
item.rb
class Item < ApplicationRecord

belongs_to :user
has_one :buy
has_one_attached :image
end
category_genre.rb
class CategoryGenre < ActiveHash::Base
  self.data = [
    { id: 1, name: '---' },
    { id: 2, name: 'レディース' },
    { id: 3, name: 'メンズ' },
    { id: 4, name: 'ベビー・キッズ' },
    { id: 5, name: 'インテリア・住まい・小物' },
    { id: 6, name: '本・音楽・ゲーム' },
    { id: 7, name: 'おもちゃ・ホビー・グッズ' },
    { id: 8, name: '家電・スマホ・カメラ' },
    { id: 9, name: 'スポーツ・レジャー' },
    { id: 10, name: 'ハンドメイド' },
    { id: 11, name: 'その他' }
  ]

  include ActiveHash::Associations
  has_many :categorys
end
category.rb
class Category < ApplicationRecord
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to :categorygenre

  validates :category_genre_id, numericality: { other_than: 1 , message: "can't be blank"}
end

自分で試したこと

そもそもActiveHashの作り方が間違っているのかとも思いましたが、初めて作成しているため
スペルミスを疑ってみましたが、ミスが見受けられませんでした。
何卒、宜しくお願い致します。

0

1Answer

Comments

  1. @ryou19861210

    Questioner

    ご回答ありがとうございます。

    アソシエーションがうまくいっていないかと思い、
    ◆itemモデルに
    belongs_to :categorygenre

    ◆category_genreモデルに
    has_many :items

    を記述すると次は

    【エラー文】
    ActiveModel::UnknownAttributeError in ItemsController#create
    unknown attribute 'statusgenre_id' for Item.

    になりました。
  2. 今と同様に新しいエラー文をしっかり読むべきだと思います。
  3. @ryou19861210

    Questioner

    今一度、読み調べてみます。
    ありがとうございました。

Your answer might help someone💌