renderでデプロイ時に発生したNameErrorを解決したい
デプロイ時のNameErrorを解決したい
デプロイ時に以下のようなNameErrorが発生しました。activhashにてうまく読み込めていないと思われるので、categoryの記載している箇所を確認しましたが答えが見つかりません。解決方法をご教示ください。
categoryを記載した箇所は、モデル、マイグレーション、showとnewファイル、コントローラーのパラムスです。初歩的な質問で申し訳ございませんが、よろしくお願いいたします。
以下デプロイ時のrenderのエラー画面
! Unable to load application: NameError: uninitialized constant ActiveHash
Jan 31 01:14:37 AM bundler: failed to load command: puma (/opt/render/project/.gems/bin/puma)
Jan 31 01:14:37 AM /opt/render/project/src/app/models/category.rb:1:in `<main>': uninitialized constant ActiveHash (NameError)
opt/render/project/rubies/ruby-2.6.5/lib/ruby/2.6.0/net/protocol.rb:66: warning: already initialized constant Net::ProtocRetryError
from /opt/render/project/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0/bundler/friendly_errors.rb:120:in `with_friendly_errors'
class Category < ActiveHash::Base
self.data = [
{ id: 1, category: '---' },
{ id: 2, category: 'メンズ' },
{ id: 3, category: 'レディース' },
{ id: 4, category: 'ベビー・キッズ' },
{ id: 5, category: 'インテリア・住まい・小物' },
{ id: 6, category: '本・音楽・ゲーム' },
{ id: 7, category: 'おもちゃ・ホビー・グッズ' },
{ id: 8, category: '家電・スマホ・カメラ' },
{ id: 9, category: 'スポーツ・レジャー' },
{ id: 10, category: 'ハンドメイド' },
{ id: 11, category: 'その他' },
]
include ActiveHash::Associations
has_many :items
end
<%# 商品の詳細 %>
<div class="items-detail">
<div class="weight-bold-text">商品の詳細</div>
<div class="form">
<div class="weight-bold-text">
カテゴリー
<span class="indispensable">必須</span>
</div>
<%= f.collection_select(:category_id, Category.all, :id, :category, {}, {class:"select-box", id:"item-category"}) %>
<div class="weight-bold-text">
商品の状態
<span class="indispensable">必須</span>
</div>
<%= f.collection_select(:condition_id, Condition.all, :id, :condition, {}, {class:"select-box", id:"item-sales-status"}) %>
</div>
</div>
<%# /商品の詳細 %>
<div class="item-explain-box">
<span><%= @item.text %></span>
</div>
<table class="detail-table">
<tbody>
<tr>
<th class="detail-item">出品者</th>
<td class="detail-value"><%= @item.user.nickname %></td>
</tr>
<tr>
<th class="detail-item">カテゴリー</th>
<td class="detail-value"><%= @item.category.category %></td>
</tr>
<tr>
class ItemsController < ApplicationController
before_action :authenticate_user!, except: [:index,:show]
before_action :set_item, only: [:show, :edit, :update, :destroy]
def index
@items = Item.includes(:user).order("created_at DESC")
end
def new
@item = Item.new
end
def create
@item = Item.new(item_params)
if @item.save
redirect_to root_path
else
render :new
end
end
def show
end
def edit
if current_user.id == @item.user_id && @item.order.nil?
else
redirect_to root_path
end
end
def update
if @item.update(item_params)
redirect_to item_path(item_params)
else
render :edit
end
end
def destroy
if current_user.id == @item.user_id
@item.destroy
redirect_to root_path
else
redirect_to root_path
end
end
private
def item_params
params.require(:item).permit(:item_name, :image, :price, :text, :category_id, :condition_id, :delivery_charge_id, :prefecture_id, :delivery_day_id
).merge(user_id: current_user.id)
end
def set_item
@item = Item.find(params[:id])
end
end
class CreateItems < ActiveRecord::Migration[6.0]
def change
create_table :items do |t|
t.timestamps
t.string :item_name, null: false
t.text :text, null: false
t.integer :category_id, null: false
t.integer :condition_id, null: false
t.integer :delivery_charge_id, null: false
t.integer :prefecture_id, null: false
t.integer :delivery_day_id, null: false
t.integer :price, null: false
t.references :user, null: false, foreign_key:true
end
end
end
0