我需要在模型列表中的铁路管理面板中添加一个自定义部分,以便与数据库交互,而无需与之相关的表格。我们可以说就像一个“假”模型。已经尝试创建一个假模型但无法使其工作。
gem 'rails_admin', '~> 2.1.0'
rails_admin.rb
require Rails.root.join('app/models', 'remediation.rb')
config.included_models = ['Remediation']
config.model Remediation do
visible true
end
应用程序/模型/remediation.rb
已经尝试过所有评论的配置以及与模型的可能组合。
class Remediation < ApplicationRecord
# or ActiveRecord::Base or include ActiveModel::Model
# attr_accessor :some_attribute
# self.table_name = :assessment_high_risk_factor
rails_admin do
end
end
这个想法是在此处(例如在“Answers”模型下)添加一个没有名为“Remediation”的表背的假模型,并自定义视图列以列出和编辑当前现有模型:
这是您的代码的修订版本,可能有效:
# app/models/remediation.rb
class Remediation
include ActiveModel::Model
# Define any virtual attributes here if needed
# attr_accessor :some_attribute
# Define Rails Admin configuration for this model
rails_admin do
navigation_label 'Custom Section'
label 'Remediation'
visible do
# Conditions to show this in the navigation
true
end
list do
# Define the columns to display in the list view
end
edit do
# Define the fields to display in the form for 'new' and 'edit' actions
end
end
end
在你的rails_admin.rb初始化程序中:
RailsAdmin.config do |config|
config.included_models = ['Remediation', ...other models...]
end
请记住,由于修复不是 ActiveRecord 模型,因此您将无法执行与数据库相关的操作,例如创建、更新或删除,除非您在rails_admin 中手动定义这些操作。