acts_as_audited。如何添加“评论”列

时间:2009-10-29 17:58:13

标签: ruby-on-rails gem

我在我的应用程序中使用acts_as_audited gem。 (用于跟踪模型对象变化的优秀宝石)

我被要求支持将文本注释与每个审核记录相关联(与svn commit类似的功能)。我对如何实现这一点感到难过。

例如。假设我有一个地址表,并且用户更新城市和州,在点击保存后我请他提供评论。我希望与创建的审计记录关联的评论信息。

有意义吗?

感谢您的帮助,

乔纳森

1 个答案:

答案 0 :(得分:8)

我认为这将是一件有用的事情。所以我自己分叉并修补了插件。

编辑我的fork已合并到官方的acts_as_audited存储库中。此帖子中包含的使用文档现在适用于vanilla acts_as_audited。我已将此帖中的链接更改为指向那里。获取官方存储库,因为我的上传补丁不会更新。我已在此帖子中更新了使用文档以反映增强功能。

将其安装为插件:

rails_root$ script/plugin install git://github.com/collectiveidea/acts_as_audited.git

用法并没有真正改变vanilla acts_as_audited。

acts_as_audited现在需要一个额外的选项。 :require_comment,如果为true,则阻止创建,更新或销毁审计模型,除非提供注释。

在创建/更新/销毁之前向审核使用model.audit_comment= "My Comment"添加注释。

audit_comment也可以批量分配,这样可以很容易地将注释字段添加到任何表单。

在使用我的gem /插件之前,您需要更新审计表以包含注释列。如果您要从审计表上没有注释字段的较旧版本的acts_as_audited升级,请更新插件,然后运行script/generate audited_migration_update update_audits_table。否则你就准备好了。

使用您的地址示例在您的表单中添加audit_comment字段时,需要更改所有需要更改的gem /插件。

<%form_for @address do |f| %>
  ... standard address fields
  <%= f.label_for :audit_comment %>
  <%= f.text_field :audit_comment %>
<% end %>