问题标签 [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.
ruby-on-rails - Paper_trail gem:未初始化的常量 VersionsController::Version
在 Ryan Bates 的 Railscast 插曲之后,我的工作正常,几周后我回去检查它,结果很糟糕。现在,每当我点击撤消按钮时,我都会收到此错误:
未初始化的常量 VersionsController::Version
我的设置与截屏视频中的完全一样,但我不知道是什么破坏了它。
问题显然在第 3 行:
有什么建议么?
ruby-on-rails - 纸迹版本控制
我正在尝试使用 Paper trail 制作版本列表,该用户将能够看到版本之间的差异并返回到旧版本。
我已经找到了如何制作列表和指向此版本的链接,但由于某些原因,当我尝试具体化最后两个版本时出现错误。它说:nil:NilClass 的未定义方法“reify”
有谁知道,如何处理它以及差异版本控制如何?
感谢您的帮助
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 代码:
和工厂:
ruby-on-rails - 使用 paper_trail 保存版本注释
我有一个模型 ( Candidate
),我需要跟踪更改、版本差异、谁更改了它以及他们对更改的任何评论。我喜欢 paper_trail,它几乎在所有方面都是我需要的,但我想知道存储“更改评论”的最佳方式是什么。我一直在考虑实施以下三个选项之一:
在我的表中添加一
comments
列versions
。如果我这样做,我不太确定实际更新该信息的最佳方式。也许candidate.version.comments = @comments
会工作?将自定义列添加到 paper_trail 的表中是不是很糟糕?使用 paper_trail 的元数据来存储评论。这似乎不是元数据的意图,但也许它会起作用?
添加另一个表,
belongs_to :candidate
因为它将跟踪comments
andversion
。这看起来很恶心 - 我还需要让这个新表属于版本表吗?
任何见解将不胜感激。自从我以前使用过 paper_trail 以来,我一直非常专注于寻找解决方案,但我也会考虑您过去使用过的其他宝石或选项。
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:
知道如何解决吗?
ruby-on-rails - 如何使用 paper_trail 保存数据并在以后显示新数据?
我将 paper_trail 与 rails 4 一起使用,我希望能够做到这一点:
我想要做的是运行一个粗略的动作,但我不希望它立即显示在网站上,我想要的是,它被保存在版本表中,然后运行一个动作,让我们说在晚上将更新网站使用来自版本控制的更改数据。
假设我有一个产品:名称:耐克,颜色:蓝色 白天我添加了一个新产品:名称:耐克,颜色:黑色 我不希望立即展示这个新产品,但我希望它是存储在 papertrail 中,稍后获取存储的数据并显示它。这适用于所有的 crud 操作。
因此,如果我要更改产品的名称,旧的仍然会显示,直到我从 papertrail 运行存储的数据并显示它。
希望 iv 设法解释了我的问题,但遇到了一些麻烦。
感谢您的时间。
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,但我没有想出另一个方向。
ruby-on-rails - 区分 whodunnit 记录的 AdminUser 或 User - paper_trail
这就是我的 paper_trail 记录用户 ID 的方式,但是我如何区分whodunnit
记录的AdminUser
or User
?
ruby-on-rails - Rails/PaperTrail:批准编辑
在我正在开发的应用程序中,我们使用 PaperTrail 不仅可以跟上原始用户所做的更改,还可以跟上对有权更改授权配置文件的“贡献者”角色的用户所做的更改.
我不能放在一起的一件是不允许未经批准的 paper_trail 版本不显示为“实时”。我们将在个人资料所有者将批准编辑的仪表板区域中进行构建。只是需要一些指导。谢谢!
ruby-on-rails - 在 Rails 中使用 PaperTrail 批准/拒绝编辑
到目前为止,这是我的代码:
我目前遇到的问题是当保存 Video 对象时验证失败(因为我也告诉过它),但我需要验证失败,但版本对象继续创建。只是不太确定如何去做。
编辑
这是我的代码(下面的代码仍然使用ApplicationController
上面的代码):
我正在开发的应用程序有一点复杂性,它允许具有特定角色的用户编辑他们也有权访问的配置文件。我正在尝试保存每个更改的版本(使用paper_trail
)而不影响现有对象。
上面的代码完全按照我想要的方式工作,但是,我只是想知道在我的log_changes_or_update
方法中是否不是实现总体目标的正确方法。