Techioz Blog

Gem の管理は名前空間モデルをまだサポートしていません

概要

ここでTutsPlus Modular Rails Appトレーニングに従って、Modular Railsアプリケーションに取り組んでいます。

ただし、Administrate Gem をインストールし、rails generated administrate:install を実行してダッシュボードをインストールすると、以下の画像のようなエラーが発生します。

つまり、Administrated Gem は Modular Rails アプリでは動作しません。この問題を解決するにはどうすればよいですか? または、Administrate Gem で名前空間モデルをサポートするにはどうすればよいですか?

私がしたこと:

ダッシュボードをハードコーディングしようとしましたが、Administrateでは動作しません(Railsはそのエラーのため、モジュラーRailsアプリケーションでGemをうまく管理できませんが、モノリシックRailsアプリケーションでは動作します)。

解決策

この PR をマージした後、Administrate は名前空間リソースをサポートするようになりました。 名前空間モデルのソリューション例を以下に示します。ブログ名前空間に投稿モデルがあると仮定します。

モデル

app/models/blog/post.rb

次に、それを管理ダッシュボードに追加します。 この構造に従うだけで機能します。

config/routes.rb

namespace :admin do
    namespace :blog do
      resources :posts
    end
    root to: "admin_users#index"
end

#app/admin/blog/posts_controller.rb

module Admin
  class Blog::PostsController < Admin::ApplicationController
  end
end

#app/dashboards/blog/posts_dashboard.rb

require "administrate/base_dashboard"

class Blog::PostDashboard < Administrate::BaseDashboard
  #normal stuff
end

詳細な解決策については、このディスカッションを確認してください