Построения простого телефонной книги приложения и есть беспокойство по поводу следующим:неопределенного метода `номер для ноля: NilClass
Каждого из моих перечисленных контактов имеет ряд ресурсов, а также их соотношение определяется в маршрутах файл, как следующим образом:
config/routes.rb
resources :contacts do
resources :numbers
end
в моем веб-приложение до сих пор, я его так, что пользователь может создать контакт, а затем создать соответствующий номер с данным контактом. Я список номеров для контакта, и когда пользователь нажимает на нее (для того, чтобы направить на шоу страницы номер # для конкретного числа, я получаю следующее сообщение об ошибке:
NoMethodError in NumbersController#show
undefined method `numbers' for nil:NilClass
Я имел эту ошибку много раз, и всегда это происходило, потому что контакт не был создан правильно, но в моем коде все сохраняется в db должным образом в соответствии с моим исследованием консоли rails. Ниже приведен код, вызывающий ошибку, найденный внутри моего номера контроллера :
def set_number #to do item
@number = @contact.numbers.find(params[:id])
end
И параметры, передаваемые в соответствии с страницей ошибки, являются следующим:
Parameters:
{"contact_id"=>"1",
"id"=>"1"}
Я установил с помощью этого @ Контакт метода в контроллере чисел:
def set_contact
@contact = Contact.find(params[:contact_id])
end
и я называю это в верхней части, как так:
before_action :set_contact
Учитывая, что есть параметры, и Rails консоль сообщает мне, что и контакт, и номер были сохранены правильно, любая идея, что не так?
вы можете на самом деле просто опубликовать весь контроллер номера, а также ссылку пользователь щелкает что воспитывающая ошибку? –
У вас должно быть ваше 'before_action: set_contact' перед вашим' before_action: set_number', иначе у вас не будет '@ contact' при вызове': set_number' – dpedoneze
'@number = Number.find (params [: id ]) 'достаточно, вам не нужно искать' @ contact', чтобы найти 'number' – lusketeer