0

スペック/ダミーの下でcustomerxエンジンをテストしています。エンジンcustomerxのインデックスページをエラーなしで表示できます。リンクは次のとおりです。

<li><%= link_to 'Customers', customerx.customer_status_categories_path %></li>

uninitialized constant CustomerStatusCategoriesControllerただし、以下のように、新しい顧客リンクのルーティングエラーがあります。

<li><%= link_to 'New Customer', customerx.new_customer_status_category_path %></li>

rake routes、正しい新規顧客ルートを示しています。

Routes for Customerx::Engine:
 customer_status_categories_index GET  /customer_status_categories/index(.:format)    customer_status_categories#index
   customer_status_categories_new GET  /customer_status_categories/new(.:format)      customer_status_categories#new
customer_status_categories_create GET  /customer_status_categories/create(.:format)   customer_status_categories#create
  customer_status_categories_edit GET  /customer_status_categories/edit(.:format)     customer_status_categories#edit
customer_status_categories_update GET  /customer_status_categories/update(.:format)   customer_status_categories#update
       customer_status_categories GET  /customer_status_categories(.:format)          customerx/customer_status_categories#index
                                  POST /customer_status_categories(.:format)          customerx/customer_status_categories#create
     new_customer_status_category GET  /customer_status_categories/new(.:format)      customerx/customer_status_categories#new
    edit_customer_status_category GET  /customer_status_categories/:id/edit(.:format) customerx/customer_status_categories#edit
         customer_status_category PUT  /customer_status_categories/:id(.:format)      customerx/customer_status_categories#update

エンジンcustomerxのroutes.rbでは、リソースは次のように宣言されています。

 resources :customer_status_categories, :only => [:index, :new, :create, :edit, :update]

編集/インデックスにルーティングエラーはありません。new/createallパスのrspecケース。newのアクションが見つからないようです(newとcreateのdefを削除してもエラーは同じです)。

エラーの原因となるコードの何が問題になっている可能性がありますか?手伝ってくれてありがとう。

4

1 に答える 1

0

この問題はget "customer_status_categories/new"、エンジンcustomerxのroutes.rbにコメントアウトすることで解決されました。

Customerx::Engine.routes.draw do
  get "customer_status_categories/index"

  #get "customer_status_categories/new"

  get "customer_status_categories/create"

  get "customer_status_categories/edit"

  get "customer_status_categories/update"

  resources :customer_status_categories

  root :to => 'customer_status_categories#index'

end

新しいコントローラーを作成するときにget ...new、inroutes.rbが自動的に挿入されました。rails generateこの行がエラーを引き起こす理由はわかりませんuninitialized constant(ただし、インデックスや編集などの他の行では発生しません)。誰かが問題の原因に光を当てることができますか?

于 2013-01-11T17:23:19.887 に答える