0

私は rails_admin を使用していますが、rails_admin でモデルを構成する方法のオプションには、rails_admin.rb 構成ファイルが 1 つあるようです (ただし、このファイルは巨大で、変更のたびにサーバーを再起動する必要があります)。

RailsAdmin.config do |config|
   config.model ModelName do
       ..

または、各モデル内に構成ブロックを含めます。

 class ModelName
     rails_admin do
         ..

しかし、これらのブロックは非常に長くなるため、モデル内に config ブロックを含めたくないのです。

そこで、最初にモデルの各構成ブロックから mixin を作成しようとしました。

  module ModelNameAdmin
      rails_admin do
          ...

rails_admin を認識しなかったため、これは機能しませんでした。

これを行ってもうまくいきませんでした:

 module ModelNameAdmin
     RailsAdmin.config do |config|
         config.model ModelName do

しかし、どうやら RailsAdmin 構成を複数回呼び出すことができないため、これは機能しませんでした。

そこで、Proc が定義された lib ファイルを用意して、各モデルに含めて使用できるようにしたいと思います。以下のようなので:

  model ModelName
       require('./lib/model_name_admin')

       rails_admin do
            @model_name_admin
       end

そして、./lib/model_name_admin ファイルには次のものがあります。

  @model_name_admin = Proc.new
       rails_admin do
           ..

しかし、これはうまくいきません。私はprocを正しく使用しているとは思わない。

4

1 に答える 1

1

モジュールでこのパターンを試してください。

module ModelNameAdmin
  def self.included(base)
    base.class_eval do
      rails_admin do
        #...
      end
    end
  end
end

class_evalモジュールがクラスに含まれるたびに、ブロック内が実行されます。

于 2012-11-06T19:16:39.070 に答える