我在rails 3.0.9中创建了一个应用程序...在该应用程序中,我有一个具有地址字段的表单。现在第一次如果用户输入地址字段(比如说“ABC”)状态应该是1,但是当另一个时间用户输入新地址(比如说“XYZ”)然后提交ts状态应该是1并且ABC状态应该是0 。
如果现在用户输入另一个地址说“PQR”并提交则其状态应为1且XYZ状态应为0,依此类推。
例如,数据库中有10个地址,前9个地址的状态为0,第10个地址为1.如果用户输入另一个地址,则第11个应为1,第10个应为0。
我不知道如何在表格中改变运行时的值......
答案 0 :(得分:0)
可以使用ActiveRecord's update_all method完成此操作。只需在模型中定义回调:
before_create :update_address_statuses
def update_address_statuses
MyModel.update_all("status = 0")
self.status = 1
end
然而,正如blackbird07指出的那样,您可能需要重新考虑如何在应用程序中使用地址,并简单地获取最近更新的地址,而不是更新表的每个字段。