У меня было has_many association
между user
и contact_information
.Я добавил два столбца к contact_information
как address_one
и address_two
.А затем изменил ассоциацию на has_one
ассоциацию между пользователем и contact_information.Но я получаю сообщение об ошибке: undefined method
пусто?для # `
В приложении / models / концерны / user_associations.rb:
has_many :contact_informations,
-> { where(address_one: nil, address_two: nil) },
as: :user
было изменено на
has_one :contact_information,
-> { where(address_one: nil, address_two: nil) },
as: :user
Затем в ContactInformationsController
изменилось contact_informations
до contact_information
.Я получаю сообщение об ошибке в ContactInformationsController#show
:
def show
if @user.contact_information.empty?
redirect_to new_contact_information_path
else
redirect_to edit_contact_information_path
end
end
Значение @user.contact_informations.empty?
было изменено на @user.contact_information.empty?
.Но когда я пытаюсь получить доступ к странице,
NoMethodError - undefined method
пусто?для # `
Я искал в ИНТЕРНЕТЕ похожие проблемы, и большинство из них сказали, что нужно конвертировать .to_s
.Но это не решило мою проблему
Объект contact_information
присутствует.Тогда почему он дает ошибку на .empty?
?Может кто-нибудь объяснить это?
Спасибо