0

我在 rails 3.0.9 中做了一个应用程序......在那个应用程序中,我有一个具有地址字段的表单。现在如果用户第一次输入地址字段(比如“ABC”)状态应该是 1,但是当另一个用户输入新地址(比如“XYZ”)然后提交 ts 状态应该是 1 而 ABC 状态应该是 0 .
如果现在用户输入另一个地址说“PQR”并提交,那么它的状态应该是1,XYZ状态应该是0,依此类推。
例如,数据库中有 10 个地址,前 9 个地址的状态为 0,第 10 个地址为 1。如果用户输入另一个地址,则第 11 个地址应为 1,第 10 个应为 0。
我不知道如何在运行时更改值在表...

4

1 回答 1

0

这可以通过ActiveRecord 的 update_all 方法来完成。只需在模型中定义一个回调:

before_create :update_address_statuses

def update_address_statuses
  MyModel.update_all("status = 0")
  self.status = 1
end

但是,正如 blackbird07 指出的那样,您可能需要重新考虑如何在应用程序中使用地址,并简单地获取最近更新的地址,而不是更新表的每个字段。

于 2012-06-04T09:09:56.480 回答