2016-10-17 12 views
1
class Admin::ApplicationController < ApplicationController 
    def index 
    end 
end 

ネストされたクラスを使用すると継承されるクラスはありますか?ネストされたクラスを使用すると継承されるクラス

class Admin < ApplicationController 
    class ApplicationController 
    end 
end 

または

class Admin 
    class ApplicationController < ApplicationController 
    end 
end 

私は私がAdmin::ApplicationController < ApplicationController理解するApplicationControllerAdmin内部の名前空間を取得し、それがApplicationControllerから継承させるであるため、2番目の1は、勝者だと思います。

答えて

1

の質問は、この線路の等価があるものである場合:しかし

class Admin 
    class ApplicationController < ApplicationController 
    end 
end 

少数sidenotes:

    class Admin::ApplicationController < ApplicationController 
    

    次に、あなたの第2の仮定が正しいか、それは同等です

  1. あなたの現在のデザインでは、不正な名称が公開されています。
  2. Adminをクラスではなくモジュールにしますか?
  3. ネストしたフォームの代わりに明示的なフォームを使用することをお勧めします。混乱することはありません。
  4. this threadを参照して、2つの形式のクラス定義の間のネストのレベルの違いについて説明します。
+0

ありがとう、アンドレイ。私はRailsには初めてです。 Rails in Action 4を読んでいます。最初のコードブロックは本のサンプルコードです。私がこの質問をする理由はRubocopが私にコンパクトなフォーマットを使わないと言っているからです。 –

+1

@LiXinyang私は何とかあなたのコメントを逃した。私はRubocopの警告は聞く価値があると信じています。あなたがそれを使っているといいです(私もそうです) –

関連する問題