Допустим, у меня есть класс записи Person
с целочисленным полем awesomeness
.
Если я позвоню Person.new(:awesomeness => 5)
, он отлично работает.
Если я позвоню Person.new(:awesomeness => 'five')
Как и ожидалось, Rails делает все возможное, чтобы выяснить, что такое 'five'
как целое число, и терпит неудачу, поэтому по умолчанию он равен 0
.Могу ли я вмешаться, перехватив хеш и как-то поиграв с данными?
Самым ранним "событием" в обратных вызовах ActiveRecord является before_save
, к которому точка '5' уже стала 0
.
Я, очевидно, мог бы сделать это на стороне контроллера, нопохоже, это что-то, что строго относится к модели в качестве фильтра.