代码之家  ›  专栏  ›  技术社区  ›  Pavan Cesar

如何检测更新后的属性更改

  •  1
  • Pavan Cesar  · 技术社区  · 9 年前

    我正在尝试显示 链接 在具有以下条件的视图页面中。

    <% if @user.primary_phone_changed? %>
    ---link here---
    <% end %>
    

    但属性 primary_phone 仅在编辑时可用 并且在调用更新动作之后更新该值。所以我无法使用 Dirty changed? 方法。更新后是否有跟踪属性更改的方法/方法?

    1 回复  |  直到 9 年前
        1
  •  3
  •   Simone Carletti    9 年前

    正如您注意到的,更新完成后,更改列表将重置。最好的选择是在模型中定义一个属性(例如,它可以是布尔值),然后使用 after_update 回调,以便在您要跟踪的属性发生更改时将其设置为true/false。

    这样,您就可以查询该实例变量并检查模型是否更改。