这里只是为了简化我的问题:Update Geocode latitude and logitude everytime address is updated
我想这样做:
两个输入字段供用户输入A,B的值。保存时,值A和B保存到数据库中。在数据库列中,有一列C,动态C = A + B。
首先保存:
A = 1 B = 2 C = A + B = 3
然后,当用户更新A和B的值时,C也会动态更改并替换数据库中的新和值。
A = 2 B = 2 现在C将计算:C = A + B = 4
现在值C是4而不是3。
任何人都可以在Rails中写这个东西吗?感谢。
答案 0 :(得分:1)
我可以!
关键是回调。这将在保存对象之前更新C.
before_save :update_c
def update_c
self.c = a + b
end
答案 1 :(得分:1)
在你的模特中
before_save :calculate_c
def calculate_c
self.c = self.a + self.b
end
答案 2 :(得分:0)
请原谅我,但为什么要把C存放在第一位?不会有a和b总是满足c?
答案 3 :(得分:0)
我会说这是一种设计气味。 如果C的值始终为A + B,则根本不需要将其存储在数据库中。 检索A& A的代码。 B可以进行计算,或者合适的数据库查询可以获取A& B并计算C的值,然后将所有三个返回到调用代码。
但是,考虑到A& B是纬度&经度和C是和地址,我可能是错的。