Инициализация активной модели записи с использованием недопустимых параметров - PullRequest
0 голосов
/ 26 июня 2010

У меня есть модель, которая содержит country_id и region_id. Форма отправляет вместо идентификаторов название страны и региона (как params [: страна] и params [: region]). Это создает проблему при вызове «новый». Можно ли добавить код в модель, чтобы страны и регионы можно было найти по названию? В настоящее время я делаю это в контроллере, но хочу, чтобы код был более многоразовым. В целом допустимо ли переопределять «новый»? Это также будет вызываться при «обновлении».

1 Ответ

1 голос
/ 26 июня 2010

В модель можно добавить средства доступа для страны и региона, которые могут выполнять поиск и устанавливать соответствующий параметр базы данных. Таким образом, в этом примере «страна» становится настраиваемым виртуальным атрибутом.

class Location
  attr_accessor :country
  def country= value
    country = Country.find_by_name value
    self.country_id = country.id if country.present?
  end
end

Отказ от ответственности: код не был подтвержден. Обязательно проверяйте, проверяйте, понимайте и улучшайте проверку ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...