Скажем, у меня есть модель Book
Rails 4 Validating связанная модель ID
class Books < ActiveRecord::Base
belongs_to :library
has_many :pages
validates :library_id, presence: true
end
и модель Library
class Library < ActiveRecord::Base
has_many :books
belongs_to :city
end
Как я могу исправить ноль исключение я получаю где-то, NoMethodError неопределенный метод library
для nil: NilClass, когда я делаю что-то вроде book.library
?
Или, другими словами, как я могу убедиться, что перед связыванием книги с библиотекой, library_id
не nil
и он есть в базе данных? Разве это не должно решить validates :library_id, presence: true
?
Так здорово, что я даже не знал, что вы можете получить такой родительский объект. Да, он должен работать, как вы говорите. Можете ли вы предоставить код и конкретное сообщение об ошибке с номером строки? –
Вы также можете использовать 'validates_presence_of: library_id'. Я бы также добавил в библиотеку предложение destroy: 'has_many: books, depend:: destroy' –