问题标签 [acts-as-audited]

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 投票
3 回答
1968 浏览

ruby-on-rails - 已审计的 audited_changes 混淆

我使用collectiveea 的审计解决方案在rails 中进行审计。所以,有一个列 (audited_changes) 是数据库中的 TEXT 定义。当我从数据库中检索审计时,我得到一个纯字符串,当我在视图中调用该属性时,它是非格式化字符串。在rdocs中,它说存在所有更改的序列化哈希。我怎样才能得到这个哈希?此外,在同一个文档中,它说可以访问 old_attributes 和 new_attributes,这是怎么回事?

在我看来:

或者有没有机会格式化这个?

0 投票
2 回答
1061 浏览

ruby-on-rails - 显示最后修改的表/记录 Rails 3.2

我仍然无法弄清楚如何实现这一点,因为我是一个新手。有些人帮助我,说我必须使用已审核的,所以确实如此。这是我的控制器:

这是我的整个控制器的馅饼。http://pastie.org/4270702

但我不知道这是否正确或如何根据我的观点实施。

我希望有人真的可以提供帮助,因为我这周真的需要这个来工作。

谢谢。


我有一个 Rails 应用程序,我可以在其中将合同存储在数据库中,它还有数据库中的人员和工厂表。现在我想要一个最后修改的表。

我希望人们在数据库中更新/添加新记录时,它会在屏幕截图的右侧显示 div 中的修改。

感谢:D

0 投票
3 回答
2687 浏览

ruby-on-rails - 已审核,查找属于用户的审核

audited用来跟踪一个名为Page. 我希望能够找到与某个用户相关的所有审计(通过user_id在审计表中)。

我怎样才能做到这一点?到目前为止,我发现访问Audit模型的唯一方法是这样的:

这似乎不是做事的正确方法。

尝试@audits = Audit.all给出Uninitialized constant错误。

有没有更优雅的方式与 gems 提供的模型进行交互?

0 投票
1 回答
391 浏览

html - Rails 3.2 错误显示视图中的审核更改

我有一个奇怪的问题。当我在合同视图中有此代码时,我的审核 gem 在我的视图中不起作用:

它给出了以下错误:undefined methodnil:NilClass`的审计

当我的视图中只有这一行时: <p><%= @contracten.respond_to?(:audits) %></p> 它显示的是假而不是真,所以我认为我的控制器工作不正常。

我的控制器显示:

我的模型:


我在这里发布了一个类似的问题:Show Last modified tables/records Rails 3.2但这并不是关于审计的具体问题。我没有找到更简单的宝石,所以这可能有效。但我仍在为观点而苦苦挣扎

0 投票
1 回答
759 浏览

ruby-on-rails-3 - 在 Rails 3 中使用 Audit 时,我得到“未初始化的常量 User::Audit”

我在我的 Rails 2 应用程序中使用acts_as_audited 并且正在将其更新到 Rails 3。我已经更新了几个模型来调用audited而不是acts_as_audited并且这些模型似乎工作成功。但是,我现在正在更新我的应用程序的用户模型,当我尝试创建用户(从控制台或应用程序)时,我收到以下错误:

看起来相关的地方的追踪是:

在我的控制器中创建问题的行只是说明:

我查看了已审核的 github 帐户的支持列表,但找不到任何适合我的问题的内容。我想我会在这里问一下是否有人遇到过类似的问题。我也在这里和谷歌搜索过这个特定问题的答案,但找不到任何相关的东西。

有任何想法吗?

0 投票
2 回答
122 浏览

ruby-on-rails - 我可以在 rake 任务中使用acts_as_audited 吗?

虽然acts_as_audited适用于我的模型,但我有一个 rake 任务,它将 XML 文件导入我的数据库。该任务执行的所有操作(主要是创建和更新)都不会被acts_as_audited 拾取。作为记录,我已添加Audit.as_user(User.current_user) do; ... ; end到 rake 任务文件执行实际任务的类中。

0 投票
1 回答
387 浏览

ruby-on-rails - 已审核:nil:NilClass 的未定义方法“关联”

所以我有一个Entry模型,其中有一列名为created_by,我想默认为第一个User创建条目的人。我安装了审核,在我的Entry模型中我有:

同样在我的User模型中,我有以下陈述:

在我的条目表单中,我试图创建一个hidden_field我试图设置created_by为等于条目的第一次审核的关联用户的条目。但是,当我尝试加载表单视图时出现此错误:

这是视图中的代码:

这是entries_controller@entry在视图中设置的代码:

我意识到,直觉上,在创建新审计时调用 @entry.audits 没有多大意义,因为它尚未保存。@entry.created_by我应该在调用控制器@entry.save的方法后设置值吗?create不太确定在这里采取什么最实用的方法。

谢谢,

迈克尔。

0 投票
2 回答
99 浏览

ruby-on-rails - 检查谁更改模型 rails 3

我有一个带有大量模型的 Rails 3 应用程序。我还有很多 rake 任务等等。至少我有必要检查我的数据库中的所有更改。每次记录更改时,我都必须知道哪一行脚本进行了更改。

我曾经使用audited-gem,这很好,但没有回答关于更改的发起者,这让我很难过。我真的坚持这一点。

0 投票
2 回答
2106 浏览

ruby-on-rails - 在 Rails 中审计记录

我有一个 Rails 3.2.14 应用程序,它有一个Call具有许多不同关联的模型。我希望能够跟踪Call模型的更改并以某种方式在CallShow View 中显示更改列表。

我一直在阅读有关经过审核的gem,它看起来可能会奏效。但在我深入研究之前,我想知道以下内容。

如何从显示视图中调用审核?我假设我可以做一些事情,比如传递一个块:

<% @call.audits.each do |a| %> <%= a.action %> <%= a.audited_changes %> <% end %>

当我需要查看为特定呼叫所做的更改时,类似的东西会在显示视图中起作用吗?

宝石如何audited处理关联,尤其是has_many_through

我希望尽快实现此功能,但不想在我的应用程序中引入任何问题。我认为在开发环境中安装可能是最好的途径?

如果有人对此宝石有经验或可以帮助提供答案,我将不胜感激。

更新 所以我尝试安装审核的 gem,我能够显示审核操作和 audited_changes。但是audited_changes的格式是一个序列化的hash。我怎样才能反序列化它并使字段友好?has_many_through此外,在使用关系/连接表时,gem 似乎没有记录更改。所以我现在拥有的是一个半工作的审计 gem,其中的数据对用户不友好。有什么方法可以美化它并使其对用户有意义?

call.rb 摘录

0 投票
2 回答
680 浏览

ruby-on-rails - Rails - 在 Audited 中保存租户(以前为acts_as_audited)

我已经审核(以前为acts_as_audited)设置和工作。user_id 已成功保存在审计表中,但我无法找到保存tenant_id 的有效方法(我有带范围的多租户设置)。我曾尝试使用自述文件中描述的关联审计技术,但这对我不起作用。

我目前的解决方案是在每个模型中使用after_audit回调(可以用 Rails 关注点实现)来获取最后的审计并保存tenant_id:

虽然这可行,但必须再次查询审计然后更新它似乎效率低下。在保存之前将tenant_id添加到审计中对我来说更有意义,但我不知道如何做到这一点。是否可以在保存之前将tenant_id添加到审核中?如果是,那么如何?

编辑:

我也尝试在我的审计模型中包含我的默认租户范围,但它似乎没有被调用:

审计.rb

application_controller.rb

编辑:2/1/16

我仍然没有对此实施解决方案,但是我目前的想法是使用:

在这段代码中,我们得到了当前模型的最后一次审计。这样我们只处理当前模型,没有机会将审计添加到另一个业务(据我所知)。我会将此代码添加到关注点中以使其保持干燥。

我仍然无法让正常的 Rails 回调在 Audit 模型中工作。我目前看到的唯一另一种方法是分叉和修改 gem 源代码。