我有一个包含country_id和region_id的模型。该表格回发了国家和地区的名称(如params [:country]和params [:region])而不是id。这在调用'new'时会产生问题。是否可以向模型添加代码,以便按名称定位国家和地区?我目前在控制器中执行此操作,但希望代码更可重用。覆盖'新'通常是否可以接受?这也将在'更新'上调用。
答案 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
免责声明:代码尚未经过验证。请务必通过错误检查来审核,验证,理解和增强。