首页 > 解决方案 > 使用移动 gem 使用脏方法进行跟踪的轨道

问题描述

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

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

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

||
{}

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

在实践中,控制台注册编辑方式如下:

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-railsmobility

解决方案


需要调用的方法在 Dirty 跟踪部分末尾的文档previous_changes中指出,而不是(在撰写本文时,文档在后一点上没有明确说明)。changes


推荐阅读