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

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

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

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

Ruby on Rails 6

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

Q&A

0回答

959閲覧

NoMethodError: undefined method `belong_to'の原因が分からない

remkn

総合スコア1

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/06/29 13:59

編集2021/06/29 20:07

前提・実現したいこと

Rspecでモデルのバリデーションについてのテストコードを書いています.

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

その際、このエラーメッセージが出てきており、解決できず困っています。
モデルItemにはbelong_toとは打ち込んでいません。
なぜ、belong_toが未定義のメソッドであるとエラーが出ているかわかりません。

An error occurred while loading ./spec/models/item_spec.rb. Failure/Error: belong_to :category NoMethodError: undefined method `belong_to' for #<Class:0x00007fb9cc684fd8> # ./app/models/item.rb:2:in `<class:Item>' # ./app/models/item.rb:1:in `<main>' # ./spec/models/item_spec.rb:3:in `<main>' Finished in 0.00003 seconds (files took 1.43 seconds to load) 0 examples, 0 failures, 1 error occurred outside of examples

該当のソースコード

モデル Item.rb

Ruby

1class Item < ApplicationRecord 2 belongs_to :category 3end

モデル Category.rb

Ruby

1class Category < ApplicationRecord 2 has_many :items 3end

Ruby

1require 'rails_helper' 2 3RSpec.describe Item, type: :model do 4 describe '#create' do 5 before do 6 7 @item = FactoryBot.build(:item) 8 end 9 10 context '登録できる場合' do 11 it '全ての項目が存在していれば登録できること' do 12 expect(@item).to be_valid 13 end 14 end 15 16 context '登録できない場合' do 17 it 'bodyが空だと登録できない' do 18 @item.body = nil 19 @item.valid? 20 expect(@item.errors[:body]).to include("can't be blank") 21 end 22 23 it 'category_idが空だと登録できない' do 24 @item.category_id = nil 25 @item.valid? 26 expect(@item.errors[:category_id]).to include("can't be blank") 27 end 28 end 29 end 30end 31

試したこと

rspec-railsのバージョンを5.0.1から4.0.2へダウングレードしましたが、事象変わらずです。

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

Rails 6.0.4
Ruby 2.6.5
rspec-rails (4.0.2)

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

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

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

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

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

winterboum

2021/06/29 14:48

./spec/models/item_spec.rb を載せてください
remkn

2021/06/29 20:15

item_spec.rbを追記しました。
winterboum

2021/06/29 21:14

不思議ですね、belongs_to :category が実は belong_to :category でした、ということしか言われていないですね。 念の為にもう一度、「エラーが出たときにfileをcatして」みて確認してください
satoshih

2021/06/30 09:07

質問内容からエラーの原因は不明ですが、springは動いていますか? 動いているようでしたら一度止めて実行するとどうでしょう?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問