【发布时间】:2011-05-30 00:00:09
【问题描述】:
我有以下嵌套模型关系:
- 国家(ID、名称)
- 省(id、country_id、名称)
- 城市(id、province_id、名称)
- 省(id、country_id、名称)
我对关系中每个模型的名称字段有validates_uniqueness_of 约束,并在数据库中的名称列上有一个唯一索引。
我想在验证之前的某个时间点交换一个与现有记录同名的新对象。换句话说,如果用户尝试添加已经添加的城市、省、国家/地区组合,我希望国家/地区模型返回对相应现有模型记录的引用,而不是在保存前验证失败。
我在使用模型回调(after_initialize、before_validation 等)时遇到问题,我无法让 Country.find_or_initialize_by_name 使用嵌套模型...有什么建议吗?
【问题讨论】:
-
你能告诉我们更多关于你遇到的麻烦的信息吗?是否抛出错误?如果是这样,他们怎么说?您向我们提供的信息越多,我们就越容易获得帮助。
标签: ruby-on-rails ruby model