【问题标题】:Compare a previous value with a present value on the update action比较更新操作的先前值和当前值
【发布时间】:2015-07-06 18:41:01
【问题描述】:

我正在尝试在应用更新操作之前确定属性是否已更改。

例如,用户单击一个复选框,然后将 true 或 false 值提交给 foo 列。

在提交表单之前进行这种比较的最佳方法是什么?

【问题讨论】:

  • @AbM 但在记录更新后不会触发吗?
  • 不,它之前触发过。您可以在其中使用before_validation。例如,检查Geocoder 如何防止不必要的请求
  • 请注意,此逻辑发生在服务器端,因此必须将表单提交给服务器。如果要在客户端进行比较,则必须使用 javascript。 Angular 的示例实现

标签: ruby-on-rails rails-activerecord


【解决方案1】:
before_update :check_changed_attributes

def check_changed_attributes
  perform_this_action if @foo.bar_changed?
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 2022-08-23
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多