0

学校と子供の 2 つのアプリケーションをマージしています。学校のアプリケーションにネストされた子供のアプリケーションで、それぞれが正常に動作します。それぞれに独自のデータベースがあります。学校アプリのツリーの一部を次に示します。

app/controllers/application_controller.rb
app/controllers/user.rb
....
app/controllers/children/application_controller.rb
app/controllers/children/user.rb ....


これらの警告がありました:


トップレベル定数 Children::ApplicationController によって参照される ApplicationController
トップレベル定数 Children::User によって参照されるユーザー


app/controllers/children/application_controller.rb に
クラス Children::ApplicationController < ActionController::Base
があります app/controllers/application_controller.rb に
クラス クラス ApplicationController < ActionController::Baseがあります


ネストされた ApplicationController がロードされていません。名前空間が機能していませんか?

4

1 に答える 1

0

1-
toplevel constant ApplicationController referenced by Children::ApplicationController

最終的に、両方のapplicationControllerを1つのapplicationControllerに統合します。つまり、学校のapplicationControllerにネストされたapplicatioController(Children)のコンテンツを追加して、applicationControllerを1つだけにします。

2-2-
toplevel constant User referenced by Children::User

users_controller.rbの名前をchildren_users_controller.rbに変更しました。そして、あなたはコントローラーにこの最初の行を持っています
class Children::ChildrenUsersController < Children::ApplicationController

2つの異なる名前空間からのものであるにもかかわらず、名前の競合でした。ここからいくつかのヒントを見つけて、 それが役立つことを願っています

于 2012-03-26T20:44:21.820 に答える