0

エンジンがロードできないのはなぜですか?

サーバーコンソールを起動すると、次のメッセージが表示されます。

`load_missing_constant': Expected D:/alexandre/dev/rails/project_name/lib/admin/engine.rb to define Admin::Engine (LoadError)

ただし、「/lib/admin/engine.rb」は存在し、その内容は次のとおりです。

Admin::Engine.routes.draw do
    get '/' => "admin#index"
    get '/error' => "admin#error"

    post '/thunder' => "thunder#create", :as => "thunders"

    get '/:class' => "admin_models#index"
    get '/:class/new' => "admin_models#new"
    post '/:class' => "admin_models#create"
    get '/:class/:id' => "admin_models#show"
    get '/:class/:id/edit' => "admin_models#edit"
    put '/:class/:id' => "admin_models#update"
    delete '/:class/:id' => "admin_models#destroy"
end

ルートに次の行を追加します。

mount Admin::Engine => '/admin', :as => 'admin'

プロジェクト仕様:

  • ルビー 1.9.2p180
  • レール 3.2.6
4

1 に答える 1

0

ファイル「/lib/admin/engine.rb」は、定数 Admin::Engine を定義する必要があります。より明示的には、そのファイルはクラス Admin::Engine を定義する必要があります。そのファイルのコンテンツの最小限の例を次に示します

module Admin
  class Engine < ::Rails::Engine
    #isolate_namespace Admin #see http://api.rubyonrails.org/classes/Rails/Engine.html#label-Isolated+Engine
  end
end

前に投稿した抜粋はエンジンのルートに関するものであり、したがって「config/routes.rb」に配置する必要があります

ドキュメントガイドは、エンジンに慣れるための優れた方法です。もしあなたが本が好きなら、私はCrafting Rails Applicationsを読むことをお勧めします。これは小さいながらも非常に内容の濃い本であり、エンジンについて幅広く説明しています (そして、最も素晴らしいルビストの 1 人である Jose Valim によって書かれています)。

于 2012-09-12T18:31:13.690 に答える