【问题标题】:rails using dirty method for tracing purposes using mobility gem使用移动 gem 使用脏方法进行跟踪的轨道
【发布时间】:2021-03-27 14:13:14
【问题描述】:

rails 控制器方法正在尝试传递对象更改

      if @union.update(union_params)
puts '||'
puts @union.changed
puts @union.changes
        @union.update_with_log(union_params, current_user.id)

但是,当它运行时,控制台会为更改注册一个空哈希,甚至不处理 changed 动词。

||
{}

changes 动词在控制台中使用调用的变量进行测试时作用为as expected。但是,应用程序的操作上下文是通过 mobility gem 处理的可转换变量。

实际上,控制台注册编辑的方式如下:

Mobility::Backends::ActiveRecord::KeyValue::TextTranslation Update (0.4ms)  UPDATE "mobility_text_translations" SET "value" = $1, "updated_at" = $2 WHERE "mobility_text_translations"."id" = $3 [...]

为什么这种行为与 mobility 和实例变量不同?

【问题讨论】:

    标签: ruby-on-rails mobility


    【解决方案1】:

    需要调用的方法是 previous_changesindicated in the documentation 在 Dirty 跟踪部分的末尾,而不是 changes(在撰写本文时,文档并未明确说明后者)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2017-06-23
      • 1970-01-01
      • 2012-04-14
      • 2014-05-22
      • 1970-01-01
      相关资源
      最近更新 更多