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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

解決済

1回答

1218閲覧

ネームエラーを解決したい。

daisuke0903

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2021/02/12 09:09

編集2021/02/12 09:12

前提・実現したいこと

出品機能に関する実装をしたいのですが、ネームエラーが出てしまい困っています。
カテゴリーやコンディションは表示されるのに発送に関する部分でネームエラーがで続けているので、発送に関する部分のネームエラーを解決したい
よろしくお願いします。

発生している問題・エラーメッセージ

NameError in Items#new uninitialized constant #<Class:0x00007fd3365b2708>::Delively_payer Extracted source (around line #74): <span class="indispensable">必須</span> </div> 74 <%= f.collection_select(:delivery_payer_id, Delively_payer.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %> <div class="weight-bold-text"> 発送元の地域 <span class="indispensable">必須</span>

該当のソースコード

出品ページ new.html.erbのカテゴリ選択以下の記述

ruby

1<%# 商品の詳細 %> 2 <div class="items-detail"> 3 <div class="weight-bold-text">商品の詳細</div> 4 <div class="form"> 5 <div class="weight-bold-text"> 6 カテゴリー 7 <span class="indispensable">必須</span> 8 </div> 9 <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %> 10 <div class="weight-bold-text"> 11 商品の状態 12 <span class="indispensable">必須</span> 13 </div> 14 <%= f.collection_select(:condition_id, Condition.all, :id, :name, {}, {class:"select-box", id:"item-sales-status"}) %> 15 </div> 16 </div> 17 <%# /商品の詳細 %> 18 19 <%# 配送について %> 20 <div class="items-detail"> 21 <div class="weight-bold-text question-text"> 22 <span>配送について</span> 23 <a class="question" href="#">?</a> 24 </div> 25 <div class="form"> 26 <div class="weight-bold-text"> 27 配送料の負担 28 <span class="indispensable">必須</span> 29 </div> 30 <%= f.collection_select(:delivery_payer_id, Delively_payer.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %> 31 <div class="weight-bold-text"> 32 発送元の地域 33 <span class="indispensable">必須</span> 34 </div> 35 <%= f.collection_select(:ship_area_id, Ship_area.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %> 36 <div class="weight-bold-text"> 37 発送までの日数 38 <span class="indispensable">必須</span> 39 </div> 40 <%= f.collection_select(:Ship_day_id, Ship_day.all, :id, :day, {}, {class:"select-box", id:"item-scheduled-delivery"}) %> 41 </div> 42 </div> 43 <%# /配送について %>

models item.rb

ruby

1class Item < ApplicationRecord 2 has_many :comments, dependent: :destroy 3 has_one :buyers, dependent: :destroy 4 belongs_to :user 5 has_one_attached :image 6 extend ActiveHash::Associations::ActiveRecordExtensions 7 belongs_to :Category, :Condition, :Delively_payer, :Ship_area, :Ship_day 8 9 10 with_options presence: true do 11 validates :item_name 12 validates :description 13 validates :category_id 14 validates :condition_id, numericality: { other_than: 1 } 15 validates :price, numericality: { greater_than_or_equal_to: 300, less_than_or_equal_to: 9_999_999 } 16 validates :delively_payer_id 17 validates :ship_area_id 18 validates :ship_day_id 19 20 21 def was_attached? 22 self.image.attached? 23 end 24end 25end 26

models delivery_payer.rb

ruby

1class Delively_payer < ActiveHash::Base 2 self.data = [ 3 { id: 1, name: '---' }, 4 { id: 2, name: '着払い(購入者負担)' }, 5 { id: 3, name: '送料込み(出品者負担)' }, 6 ] 7 8 include ActiveHash::Associations 9 has_many :items 10 11 end 12end

models ship_area.rb

ruby

1class Ship_area < ActiveHash::Base 2 self.data = [ 3 {id: 1, name: '---'} 4 {id: 2, name: '北海道'}, {id: 3, name: '青森県'}, {id: 4, name: '岩手県'}, 5 {id: 5, name: '宮城県'}, {id: 6, name: '秋田県'}, {id: 7, name: '山形県'}, 6 {id: 8, name: '福島県'}, {id: 9, name: '茨城県'}, {id: 10, name: '栃木県'}, 7 {id: 11, name: '群馬県'}, {id: 12, name: '埼玉県'}, {id: 13, name: '千葉県'}, 8 {id: 14, name: '東京都'}, {id: 15, name: '神奈川県'}, {id: 16, name: '新潟県'}, 9 {id: 17, name: '富山県'}, {id: 18, name: '石川県'}, {id: 19, name: '福井県'}, 10 {id: 20, name: '山梨県'}, {id: 21, name: '長野県'}, {id: 22, name: '岐阜県'}, 11 {id: 23, name: '静岡県'}, {id: 24, name: '愛知県'}, {id: 25, name: '三重県'}, 12 {id: 26, name: '滋賀県'}, {id: 27, name: '京都府'}, {id: 28, name: '大阪府'}, 13 {id: 29, name: '兵庫県'}, {id: 30, name: '奈良県'}, {id: 31, name: '和歌山県'}, 14 {id: 32, name: '鳥取県'}, {id: 33, name: '島根県'}, {id: 34, name: '岡山県'}, 15 {id: 35, name: '広島県'}, {id: 36, name: '山口県'}, {id: 37, name: '徳島県'}, 16 {id: 38, name: '香川県'}, {id: 39, name: '愛媛県'}, {id: 40, name: '高知県'}, 17 {id: 41, name: '福岡県'}, {id: 42, name: '佐賀県'}, {id: 43, name: '長崎県'}, 18 {id: 44, name: '熊本県'}, {id: 45, name: '大分県'}, {id: 46, name: '宮崎県'}, 19 {id: 47, name: '鹿児島県'}, {id: 48, name: '沖縄県'}, 20 ] 21 22 include ActiveHash::Associations 23 has_many :items 24 25 end

models ship_day.rb

ruby

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

試したこと

ネームエラーなので他の名前に変えてみたりDelivery_payer.allのところを[]にするとネームエラーにならないことを確認し、_を抜いた名前にしてみたりしたのですがエラーが解消されないので困っています。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

models delivery_payer.rb が
class Delively_payer < ActiveHash::Base
はおかしいです。

class DelivelyPayer < ActiveHash::Base
です。
Railsの規約はそれに反した場合に宣言(というより上書き再定義)すれば通るものが多いですが、file名とそこに定義されているmodule、classの名前の関係は(私が知る限り)例外はありません。

投稿2021/02/12 10:11

winterboum

総合スコア23567

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

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

daisuke0903

2021/02/12 10:27

回答ありがとうございます! おかげさまで修正できました。 _は規約に反していたのですね、ファイル名も含まれると思っていなかったので、全て直したらできるようになりました。 ありがとうございました。
daisuke0903

2021/02/12 14:09

なるほどです。 ありがとうございます、本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問