неопределенный метод person для nil: NilClass - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь создать менеджер контактов, следуя инструкциям.Я думаю, что в руководстве отсутствует какая-то часть, и я застрял при написании тестов.

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

Насколько я понимаю, каким-то образом мне нужно инициализировать@номер телефона.Так как я новичок в рельсах, я не мог понять это.

Любая помощь была бы хороша.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Вы можете просто сделать:

expect(response).to redirect_to(alice)
0 голосов
/ 19 ноября 2018

Возможно, попробуйте найти на основе атрибутов, использованных для создания номера телефона:

@phone_number = PhoneNumber.find_by(number: '555-8888')
expect(response).to redirect_to(@phone_number.person)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...