【发布时间】:2017-10-25 03:32:03
【问题描述】:
我正在尝试创建一个 rails 固定装置来测试一个控制器,该控制器获取与 paper_trail gem (7.0.1) 保持一致的版本。但是,到目前为止,我无法在夹具中填充任何版本来进行测试。而且,YAML 文件似乎没有加载/正在破坏其他测试。这是我的 `versions.yml` 文件的内容:
---
version_001:
id: 1
item_type: 'DistributionChannel'
item_id: 1
event: 'create'
whodunnit: <%= User.find_by(email: 'user@example.com').id.to_s %>
object: nil
created_at: 2017-05-15 12:00:00.000000000 Z
object_changes: '---\\nid:\\n- \\n- 1\\nprimary_channel:\\n- \\n- Best Buy\\nsecondary_channel:\\n- \\n- ''\ncreated_at:\\n- \\n- 2017-05-15 12:00:00.000000000 Z\\nupdated_at:\\n- \\n- 2017-05-15 12:00:00.000000000 Z\\n'
架构包含带有相应列的版本表。
【问题讨论】:
-
这里跑题了,object_changes需要用双引号吗?
-
您会收到什么样的错误消息?
object_changes的值是否真的评估了 两次 以从加载的 YAML 中获取双反斜杠(对于它们,它们是 not 转义序列,即\\n加载为 3人物 )。你的确切问题是什么? paper_trail 是否有替代方案?如何将 YAML 转换为 JSON?是否可以使用 XML 编写测试? -
我在使用 db:fixtures:load 加载固定装置时实际上没有收到错误,但是在窥探测试时没有加载任何版本。我肯定想继续使用 paper_trail。而且,我的理解是我需要转义换行符,因此需要额外的“\”。我对固定装置很陌生,因为我更喜欢工厂。简而言之,我正在查看是否有任何明显的语法错误或其他问题,那些有 paper_trail 经验的人可能知道这会阻止固定装置加载。谢谢!
标签: ruby-on-rails ruby fixtures paper-trail-gem