0
저는 프로그래밍에 익숙하지 않으며 약 10 주 동안 Ruby on Rails를 배우고 있습니다. 내가 모델이 사용자에 대한 유효성을 검사하는 알고, 이제NoMethodError : 내 메서드 중 하나에서 RSpec 테스트를 실행할 때 정의되지 않은 메서드 'user'
class Item < ActiveRecord::Base
belongs_to :list
default_scope { where("items.created_at > 7.days.ago") }
validates :body, length: { minimum: 5 }, presence: true
validates :user, presence: true
end
:하지만, 나는 아래 모델에 RSpec에 테스트를 실행하면
, 나는 모델을 여기
NoMethodError:
undefined method `user' for #<Item:0xab6623c>
입니다 점점 계속 나는 Factory Girl과 함께 사용자를 만들었고 내 사양에 포함시켰다.
이
FactoryGirl.define do
factory :item do
body 'item body'
list
user
end
end
사용자 공장 : 여기
FactoryGirl.define do
factory :user do
name "John Fahey"
sequence(:email, 100) { |n| "person#{n}@example.com" }
password "helloworld"
password_confirmation "helloworld"
confirmed_at Time.now
end
end
... 그리고 내 사양이다 : 나는 공장 소녀를 읽을
require 'rails_helper'
describe Item do
describe "validations" do
describe "length validation" do
before do
user = create(:user)
item = create(:item, user: user)
end
it "only allows items with 5 or more characters." do
i = item.body(length: 4)
expect(i.valid?).to eq(false)
i = item.body(length: 6)
expect(i.valid?).to eq(true)
end
end
end
end
는 "시작"가이드 여기 내 공장입니다 사용자 및 항목을 만들 때 내 구문이 정상인지 확인하려면 테스트가 사용자를 인식하지 못하는 이유를 모르겠습니다. 내가 여기서 뭐하고 있니?
'아이템'모델에서'belongs_to : user'가 누락 된 것 같아요. –
class 사용자
EricLowber
"많이 통과했습니다"를 올바르게 사용하지 않았을 수 있습니다. 사용자 모델에서 나는 사용자가 목록 모델을 통해 많은 항목을 가지고 있다고 언급했다. class User
EricLowber