gpt4 book ai didi

ruby-on-rails - 如何从 RailsAdmin 的 View 中排除 PaperTrail 版本

转载 作者:行者123 更新时间:2023-12-04 06:35:52 26 4
gpt4 key购买 nike

我使用 RailsAdmin v0.6.8 和 PaperTrail 进行版本控制。

我的每个 has_paper_trail 模型的列表、显示、创建和编辑 View 都包含版本属性。事实上,创建和编辑 View 允许添加/删除版本,这对我来说没有意义。除了为每个模型的每个 View 使用 exclude_fields :versions 之外,是否有全局方法可以做到这一点?

谢谢!

最佳答案

方法一

如果所有模型都继承了一个抽象类(例如:“ApplicationRecord”)
您可以创建一个新文件(例如: app/models/concerns/exclude_versions.rb ):

module ExcludeVersions
extend ActiveSupport::Concern

included do
rails_admin do
configure :versions do
hide
end
end
end

end

并编辑抽象类,如:

class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
has_paper_trail

def self.inherited(subclass)
subclass.include(ExcludeVersions)
super
end
end

方法二

如果所有模型都没有继承一个抽象类,你可以在 config/initializers/rails_admin.rb 中添加这样的代码

  Rails.application.eager_load! if Rails.env.development?

ActiveRecord::Base.descendants.each do |imodel|
### next if ['ApplicationRecord'].include?(imodel.name) ### if all models are inherited an abstract class, please uncomment this line, or some strange error will happen
config.model "#{imodel.name}" do
configure :versions do
hide
end
end
end

引用: https://github.com/sferik/rails_admin/wiki/Models#configuring-models-all-at-once

关于ruby-on-rails - 如何从 RailsAdmin 的 View 中排除 PaperTrail 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com