質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1478閲覧

name errorを解消したい

sewwolf

総合スコア4

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2022/01/05 06:18

#問題点
collection_selectの記述を行った際にname errorが出ました。

rails

1NameError in Items#new 2 3Showing /Users/sewwolf.gt/projects/furima-36825/app/views/items/new.html.erb where line #83 raised: 4<%= f.collection_select(:delivery_time_id, Delivery_time.all, :id, :name, {}, {class:"select-box", id:"item-scheduled-delivery"}) %> 5 6uninitialized constant #<Class:0x00007fca7da96d30>::Delivery_time

#エラーに対して確認したこと

  • new.html.erbの記述の確認
  • コントローラー、ルーティングの確認
  • モデルの記述の確認
  • 似たような事例の検索

name errorなので記述ミスだと考えたのですが見つけることができませんでした。
#コード

rails

1# delivery_time.rb 2class Delivery_time < ActiveHash::Base 3 self.data = [ 4 { id: 1, name: '---' }, 5 { id: 2, name: '1~2日で発送' }, 6 { id: 3, name: '2~3日で発送' }, 7 { id: 4, name: '4~7日で発送' } 8 ] 9 include ActiveHash::Associations 10 has_many :items 11 end 12

rails

1# item.rb 2class Item < ApplicationRecord 3 4 validates :item_name, presence: true 5 validates :detail, presence: true 6 validates :category_id, numericality: { other_than: 1, message: "can't be blank"} 7 validates :condition_id, numericality: { other_than: 1, message: "can't be blank" } 8 validates :postage_id, numericality: { other_than: 1, message: "can't be blank" } 9 validates :area_id, numericality: { other_than: 1, message: "can't be blank" } 10 validates :delivery_time_id, numericality: { other_than: 1, message: "can't be blank" } 11 12 extend ActiveHash::Associations::ActiveRecordExtensions do 13 belongs_to :category 14 belongs_to :condition 15 belongs_to :delivery_time 16 belongs_to :area 17 end 18end

rails

1# new.html.erb 2 <%= form_with model: @item, local: true do |f| %> 3 <%# インスタンスを渡して、エラー発生時にメッセージが表示されるようにしましょう。%> 4 <% render 'shared/error_messages', model: f.object %> 5 <%# //インスタンスを渡して、エラー発生時にメッセージが表示されるようにしましょう。%> 6 7 <%# 商品画像 %> 8 <div class="img-upload"> 9 <div class="weight-bold-text"> 10 商品画像 11 <span class="indispensable">必須</span> 12 </div> 13 <div class="click-upload"> 14 <p> 15 クリックしてファイルをアップロード 16 </p> 17 <%= f.file_field :hoge, id:"item-image" %> 18 </div> 19 </div> 20 <%# /商品画像 %> 21 <%# 商品名と商品説明 %> 22 <div class="new-items"> 23 <div class="weight-bold-text"> 24 商品名 25 <span class="indispensable">必須</span> 26 </div> 27 <%= f.text_area :item_name, class:"items-text", id:"item-name", placeholder:"商品名(必須 40文字まで)", maxlength:"40" %> 28 <div class="items-explain"> 29 <div class="weight-bold-text"> 30 商品の説明 31 <span class="indispensable">必須</span> 32 </div> 33 <%= f.text_area :detail, class:"items-text", id:"item-info", placeholder:"商品の説明(必須 1,000文字まで)(色、素材、重さ、定価、注意点など)例)2010年頃に1万円で購入したジャケットです。ライトグレーで傷はありません。あわせやすいのでおすすめです。" ,rows:"7" ,maxlength:"1000" %> 34 </div> 35 </div> 36 <%# /商品名と商品説明 %> 37 38 <%# 商品の詳細 %> 39 <div class="items-detail"> 40 <div class="weight-bold-text">商品の詳細</div> 41 <div class="form"> 42 <div class="weight-bold-text"> 43 カテゴリー 44 <span class="indispensable">必須</span> 45 </div> 46 <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %> 47 <div class="weight-bold-text"> 48 商品の状態 49 <span class="indispensable">必須</span> 50 </div> 51 <%= f.collection_select(:condition_id, Condition.all, :id, :name, {}, {class:"select-box", id:"item-sales-status"}) %> 52 </div> 53 </div> 54 <%# /商品の詳細 %> 55 56 <%# 配送について %> 57 <div class="items-detail"> 58 <div class="weight-bold-text question-text"> 59 <span>配送について</span> 60 <a class="question" href="#">?</a> 61 </div> 62 <div class="form"> 63 <div class="weight-bold-text"> 64 配送料の負担 65 <span class="indispensable">必須</span> 66 </div> 67 <%= f.collection_select(:postage_id, Postage.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %> 68 <div class="weight-bold-text"> 69 発送元の地域 70 <span class="indispensable">必須</span> 71 </div> 72 <%= f.collection_select(:area_id, Area.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %> 73 <div class="weight-bold-text"> 74 発送までの日数 75 <span class="indispensable">必須</span> 76 </div> 77 <%= f.collection_select(:delivery_time_id, Delivery_time.all, :id, :name, {}, {class:"select-box", id:"item-scheduled-delivery"}) %> 78 </div> 79 </div> 80 <%# /配送について %> 81 82 <%# 販売価格 %> 83 <div class="sell-price"> 84 <div class="weight-bold-text question-text"> 85 <span>販売価格<br>(¥300〜9,999,999)</span> 86 <a class="question" href="#">?</a> 87 </div> 88 <div> 89 <div class="price-content"> 90 <div class="price-text"> 91 <span>価格</span> 92 <span class="indispensable">必須</span> 93 </div> 94 <span class="sell-yen">¥</span> 95 <%= f.text_field :price, class:"price-input", id:"item-price", placeholder:"例)300" %> 96 </div> 97 <div class="price-content"> 98 <span>販売手数料 (10%)</span> 99 <span> 100 <span id='add-tax-price'></span>円 101 </span> 102 </div> 103 <div class="price-content"> 104 <span>販売利益</span> 105 <span> 106 <span id='profit'></span>円 107 </div> 108 </span> 109 </div> 110 </div> 111 <%# /販売価格 %> 112 113 <%# 注意書き %> 114 <div class="caution"> 115 <p class="sentence"> 116 <a href="#">禁止されている出品、</a> 117 <a href="#">行為</a> 118 を必ずご確認ください。 119 </p> 120 <p class="sentence"> 121 またブランド品でシリアルナンバー等がある場合はご記載ください。 122 <a href="#">偽ブランドの販売</a> 123 は犯罪であり処罰される可能性があります。 124 </p> 125 <p class="sentence"> 126 また、出品をもちまして 127 <a href="#">加盟店規約</a> 128 に同意したことになります。 129 </p> 130 </div> 131 <%# /注意書き %> 132 <%# 下部ボタン %> 133 <div class="sell-btn-contents"> 134 <%= f.submit "出品する" ,class:"sell-btn" %> 135 <%=link_to 'もどる', root_path, class:"back-btn" %> 136 </div> 137 <%# /下部ボタン %> 138 </div> 139 <% end %> 140

rails

1# routes.rb 2Rails.application.routes.draw do 3 devise_for :users 4 root to: 'items#index' 5 resources :items , only: [:index, :new, :create, :delete, :edit] 6 7end 8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Delivery_timeというのは、本当にその名前で間違いないですか?

投稿2022/01/05 06:32

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sewwolf

2022/01/05 06:47

はい。何度も確認してみたのですが、スペルに間違いもなさそうです。
maisumakun

2022/01/05 06:51

というか、名前のルールに従っていないので、うまく動かない可能性があります。クラス名をDeliveryTimeとしてください。
sewwolf

2022/01/05 07:02

命名の部分の知識が不十分でした。変更したところちゃんと動きました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問