我有一个用户邮政编码的自动填充字段。自动完成功能来自zip_codes
表(每个邮政编码也包含lat和long)。
但是,我希望它在提交表单时将用户lat和long坐标保存在后台。我可以在我的模型中设置数据库关系或做某事吗?
答案 0 :(得分:1)
怎么样?:
在您的模型中:
before_save :populate_lat_and_long, :if => :changing_zipcode?
...
private
def changing_zipcode?
self.zipcode_changed?
end
def populate_lat_and_long
entry = ZipCode.where(:zipcode => self.zipcode).first
self.lat, self.long = entry.lat, entry.long
end
/从zipcodes中删除复数
答案 1 :(得分:0)
如果您的表单设置为仅通过params散列发送邮政编码,为什么不在控制器中对该zip进行查找,然后执行model.save。在调用保存功能之前,没有任何内容表明您无法在控制器中手动修改模型对象。
或者,如果你正在关注瘦控制器,厚模型范例,那么这个代码就会出现在你的模型中。您应该覆盖user.zip的属性访问器以自动填充user.lat和user.long。