nil:NilClass 的未定义方法 'person'
undefined method 'person' for nil:NilClass
我正在尝试按照教程创建联系人管理器。我认为该教程缺少某些部分,我在编写测试时卡住了。
describe "POST #create" do
context "with valid params" do
it "creates a new PhoneNumber" do
expect {
post :create, params: {phone_number: valid_attributes}, session: valid_session
}.to change(PhoneNumber, :count).by(1)
end
it "redirects to the phone number's person" do
alice = Person.create(first_name: 'Alice', last_name: 'Smith')
valid_attributes = {number: '555-8888', person_id: alice.id}
post :create, params: {:phone_number => valid_attributes}, session: valid_session
expect(response).to redirect_to(@phone_number.person)
end
end
end
我的代码报错如下
undefined method `person' for nil: NilClass
据我了解,我需要以某种方式初始化@phone_number。由于我是 rails 的新手,所以我无法理解。
任何帮助都会很好。
也许可以尝试根据用于创建 phone 号码的属性查找:
@phone_number = PhoneNumber.find_by(number: '555-8888')
expect(response).to redirect_to(@phone_number.person)
你可以这样做:
expect(response).to redirect_to(alice)
我正在尝试按照教程创建联系人管理器。我认为该教程缺少某些部分,我在编写测试时卡住了。
describe "POST #create" do
context "with valid params" do
it "creates a new PhoneNumber" do
expect {
post :create, params: {phone_number: valid_attributes}, session: valid_session
}.to change(PhoneNumber, :count).by(1)
end
it "redirects to the phone number's person" do
alice = Person.create(first_name: 'Alice', last_name: 'Smith')
valid_attributes = {number: '555-8888', person_id: alice.id}
post :create, params: {:phone_number => valid_attributes}, session: valid_session
expect(response).to redirect_to(@phone_number.person)
end
end
end
我的代码报错如下
undefined method `person' for nil: NilClass
据我了解,我需要以某种方式初始化@phone_number。由于我是 rails 的新手,所以我无法理解。
任何帮助都会很好。
也许可以尝试根据用于创建 phone 号码的属性查找:
@phone_number = PhoneNumber.find_by(number: '555-8888')
expect(response).to redirect_to(@phone_number.person)
你可以这样做:
expect(response).to redirect_to(alice)