cloud9でwebアプリケーションを作っているのですが、エラーが出て先に進めません。genreモデルのnameカラムを呼び出すコードを書いたのですが、データが呼び出されずエラーが出てしまいます。each文で繰り返しで表示させたいのですが、うまくいきません。
・モデルはitemモデルとgenreモデルを使っており、アソシエーションを使っています。
index.html.erb
<div class="container"> <div class="row"> <div class="col"> <div class="item-title"> <h4>商品一覧</h4> </div> <table class="table"> <div class="table-header"> <thead> <tr><th>商品ID</th></tr> <tr><th>商品名</th></tr> <tr><th>税抜価格</th></tr> <tr><th>ジャンル</th></tr> <tr><th>ステータス</th></tr> </thead> </div> <% @items.each do |item| %> <div class="table-list"> <tbody> <tr><td><%= item.genre_id %></td></tr> <tr><td><%= item.name %></td></tr> <tr><td><%= item.price %></td></tr> <tr><td><%= item.genre.name %></td></tr> <tr> <% if item.is_active == true %> <td class="pt-4 pl-2 text-success">販売中</td> <% else %> <td class="pt-4 pl-2 text-success">販売停止中</td> <% end %> </tr> </tbody> <% end %> </div> </table> </div> </div> </div>
item.controller.rb
class Admin::ItemsController < ApplicationController def new @item = Item.new @genres = Genre.all end def index @items = Item.all end def create @genres = Genre.all @item = Item.new(item_params) if @item.save redirect_to admin_item_path(@item.id) else render :new end end def show @item = Item.find(params[:id]) @genre =Genre.find(@item.genre_id) end def edit @item = Item.find(params[:id]) @genre =Genre.all end def update @item = Item.find(params[:id]) if @item.update(item_params) redirect_to admin_item_path(@item.id) else render :update end end private def item_params params.require(:item).permit(:image,:name, :caption,:genre_id,:price, :is_active,:item_id,:introduction) end end
お忙しいとは思いますが、回答の方よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。