问题标签 [paper-trail-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1363 浏览

ruby-on-rails - Paper_trail gem:未初始化的常量 VersionsController::Version

在 Ryan Bates 的 Railscast 插曲之后,我的工作正常,几周后我回去检查它,结果很糟糕。现在,每当我点击撤消按钮时,我都会收到此错误:

未初始化的常量 VersionsController::Version

我的设置与截屏视频中的完全一样,但我不知道是什么破坏了它。

问题显然在第 3 行:

有什么建议么?

http://railscasts.com/episodes/255-undo-with-paper-trail

0 投票
1 回答
870 浏览

ruby-on-rails - 纸迹版本控制

我正在尝试使用 Paper trail 制作版本列表,该用户将能够看到版本之间的差异并返回到旧版本。

我已经找到了如何制作列表和指向此版本的链接,但由于某些原因,当我尝试具体化最后两个版本时出现错误。它说:nil:NilClass 的未定义方法“reify”

有谁知道,如何处理它以及差异版本控制如何?

感谢您的帮助

0 投票
0 回答
934 浏览

ruby-on-rails - 在 Rails 4 升级后,view_context 在应用程序中工作,但测试失败。为什么?

我刚刚将我的应用程序从 Rails 3.2 升级到 Rails 4。

我正在努力完成需要做出的各种改变,但这个让我很难过。

我的销毁操作似乎在应用程序中起作用,但是当我运行我的 rspec 测试时,它们失败了。

这是我的控制器中似乎抛出错误的方法(当我将其注释掉时,测试运行没有问题)。

这条线取自 Ryan Bates 的Undo with PaperTrail Railscast。它生成的链接似乎在应用程序中运行良好。

以下是 rspec 测试:

这是抛出的 rspec 错误:

1) AnswersController Admin access DELETE #destroy 从数据库中删除答案

失败/错误:expect{ delete :destroy, :id => @answer1, :question_id => @question1 }.to change(Answer, :count).by(-1)

ActionController::UrlGenerationError:

没有路由匹配 {:id=>nil} 缺少必需的键:[:id]

# ./app/controllers/answers_controller.rb:87:in `undo_link'

# ./app/controllers/answers_controller.rb:69:in `block (2 levels) in destroy'

# ./app/controllers/answers_controller.rb:68:in `destroy'

# ./spec/controllers/answers_controller_spec.rb:179:in `block (5 levels) in '

# ./spec/controllers/answers_controller_spec.rb:179:in `block (4 levels) in '

2) AnswersController 管理员访问 DELETE #destroy 重定向到 questions#show

失败/错误:删除 :destroy, :id => @answer1, :question_id => @question1 ActionController::UrlGenerationError: 没有路由匹配 {:id=>nil} 缺少必需的键:[:id]

# ./app/controllers/answers_controller.rb:87:in `undo_link'

谁能解释为什么会发生这种情况以及我能做些什么?

编辑 - 2013 年 12 月 9 日

正如 Mikhail 在评论中建议的那样,我在使用 better_errors gem 的方法中提出了一个错误,以便尝试重现 nil。我从来没有在应用程序本身中得到 nil - 它似乎只出现在 rspec 测试中。这是我得到的结果:

编辑 - 2013 年 12 月 10 日

这是设置@answer1 的 rspec 代码:

和工厂:

0 投票
1 回答
1002 浏览

ruby-on-rails - 使用 paper_trail 保存版本注释

我有一个模型 ( Candidate),我需要跟踪更改、版本差异、谁更改了它以及他们对更改的任何评论。我喜欢 paper_trail,它几乎在所有方面都是我需要的,但我想知道存储“更改评论”的最佳方式是什么。我一直在考虑实施以下三个选项之一:

  1. 在我的表中添加一commentsversions。如果我这样做,我不太确定实际更新该信息的最佳方式。也许candidate.version.comments = @comments会工作?将自定义列添加到 paper_trail 的表中是不是很糟糕?

  2. 使用 paper_trail 的元数据来存储评论。这似乎不是元数据的意图,但也许它会起作用?

  3. 添加另一个表,belongs_to :candidate因为它将跟踪commentsand version。这看起来很恶心 - 我还需要让这个新表属于版本表吗?

任何见解将不胜感激。自从我以前使用过 paper_trail 以来,我一直非常专注于寻找解决方案,但我也会考虑您过去使用过的其他宝石或选项。

0 投票
2 回答
2162 浏览

ruby-on-rails - Paper_trail 和 Rails_Admin:NameError - 未初始化的常量版本

我最近将 paper_trail 升级到 version3.0.0并遇到了这个错误:

我不知道如何解决它。当我使用版本时,2.7.1一切都很棒。我还使用 rails 3.2.16 和 rails_admin 0.4.9。我的迁移是:

在我的模型中,我附上了 paper_trail:

知道如何解决吗?

0 投票
1 回答
159 浏览

ruby-on-rails - 如何使用 paper_trail 保存数据并在以后显示新数据?

我将 paper_trail 与 rails 4 一起使用,我希望能够做到这一点:

我想要做的是运行一个粗略的动作,但我不希望它立即显示在网站上,我想要的是,它被保存在版本表中,然后运行一个动作,让我们说在晚上将更新网站使用来自版本控制的更改数据。

假设我有一个产品:名称:耐克,颜色:蓝色 白天我添加了一个新产品:名称:耐克,颜色:黑色 我不希望立即展示这个新产品,但我希望它是存储在 papertrail 中,稍后获取存储的数据并显示它。这适用于所有的 crud 操作。

因此,如果我要更改产品的名称,旧的仍然会显示,直到我从 papertrail 运行存储的数据并显示它。

希望 iv 设法解释了我的问题,但遇到了一些麻烦。

感谢您的时间。

0 投票
1 回答
1924 浏览

ruby-on-rails-3 - Rails 3、PaperTrail 和 Whodunnit 用户实例

我有一个 City 类,它的版本由 PaperTrail 控制。我的系统有由 Devise 管理的用户。我想在编辑特定版本的 City 类的用户之间建立关系。

为此,我使用 Rails 3.2.15 和 Paper Trail 3.0.0 尝试了以下配置:

有了这个,我可以拥有特定用户制作的版本,例如:

User.last.editions从最后一个用户获取版本列表(PaperTrail::Version 对象)。

然后我认为拥有编辑特定城市的用户实例会很简单,例如,获取编辑第一个城市的最后一个版本的用户的用户实例:

如果不是这样,我应该如何配置我的模型以访问 PaperTrail::Version 上的“用户”方法?

Ps.:我不确定我是否应该像我一样创建一个 Model PaperTrail::Version,但我没有想出另一个方向。

0 投票
1 回答
160 浏览

ruby-on-rails - 区分 whodunnit 记录的 AdminUser 或 User - paper_trail

这就是我的 paper_trail 记录用户 ID 的方式,但是我如何区分whodunnit记录的AdminUseror User

0 投票
1 回答
452 浏览

ruby-on-rails - Rails/PaperTrail:批准编辑

在我正在开发的应用程序中,我们使用 PaperTrail 不仅可以跟上原始用户所做的更改,还可以跟上对有权更改授权配置文件的“贡献者”角色的用户所做的更改.

我不能放在一起的一件是不允许未经批准的 paper_trail 版本不显示为“实时”。我们将在个人资料所有者将批准编辑的仪表板区域中进行构建。只是需要一些指导。谢谢!

0 投票
1 回答
491 浏览

ruby-on-rails - 在 Rails 中使用 PaperTrail 批准/拒绝编辑

到目前为止,这是我的代码:

我目前遇到的问题是当保存 Video 对象时验证失败(因为我也告诉过它),但我需要验证失败,但版本对象继续创建。只是不太确定如何去做。

编辑
这是我的代码(下面的代码仍然使用ApplicationController上面的代码):

我正在开发的应用程序有一点复杂性,它允许具有特定角色的用户编辑他们也有权访问的配置文件。我正在尝试保存每个更改的版本(使用paper_trail)而不影响现有对象。

上面的代码完全按照我想要的方式工作,但是,我只是想知道在我的log_changes_or_update方法中是否不是实现总体目标的正确方法。