使用无效参数初始化活动记录模型

时间:2010-06-25 23:43:39

标签: ruby-on-rails

我有一个包含country_id和region_id的模型。该表格回发了国家和地区的名称(如params [:country]和params [:region])而不是id。这在调用'new'时会产生问题。是否可以向模型添加代码,以便按名称定位国家和地区?我目前在控制器中执行此操作,但希望代码更可重用。覆盖'新'通常是否可以接受?这也将在'更新'上调用。

1 个答案:

答案 0 :(得分:1)

您可以在模型中为国家和地区添加访问者,可以执行查找并设置相应的数据库参数。因此,在此示例中,“country”成为可设置的虚拟属性。

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

免责声明:代码尚未经过验证。请务必通过错误检查来审核,验证,理解和增强。