保存虚拟属性时可以访问参数

时间:2013-12-21 10:48:20

标签: ruby-on-rails activerecord

我有模型Countries。我有关联的模型RegionsRegions belongs_to Countries并拥有country_id字段。我的模型ObjectsCountryRegion相关联。但是,在表单中,用户键入了他们的名字,因此我有虚拟属性country_nameregion_name,然后我在模型中解析。因此,国家在地区的国家和地区储蓄。但是当我保存Region时,如何将country_id分配给Region模型?我无法从模型中获取params,所以我该怎么办?

1 个答案:

答案 0 :(得分:0)

实际上很容易。

def region_name=(name)
region = Region.find_or_create_by(:name => name, :country_id => Country.find_by(:name => self.country_name).id) if name.present?
self.region_id = region.id
end