Ruby on Rails Rails_admin 添加自定义模型部分,无需创建表

问题描述 投票:0回答:1

我需要在模型列表中的铁路管理面板中添加一个自定义部分,以便与数据库交互,而无需与之相关的表格。我们可以说就像一个“假”模型。已经尝试创建一个假模型但无法使其工作。

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”的表背的假模型,并自定义视图列以列出和编辑当前现有模型:

ruby-on-rails ruby rubygems rails-admin rails-models
1个回答
0
投票

这是您的代码的修订版本,可能有效:

# 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 中手动定义这些操作。

© www.soinside.com 2019 - 2024. All rights reserved.