2009-04-24 44 views
5

管理セクションと公開セクションがあるウェブアプリケーションを設計する。それは、単に "インデックス"と "ショー"のための公平に直面しているコントローラを持っているように感じる少し冗長です。私が読んだすべての提案は、管理者用のネームスペースを示唆しています。これは問題ありません。私は追加アクション、例えば "list_public"とかそういうものを持ったコントローラを1つ持っているべきかどうか疑問に思います。Rails - 2つのコントローラまたはアクションを追加しますか?

私はRailsの新機能ですから、何も気にしないかもしれません。私はちょうど私のプロジェクトのディレクトリ全体に散らばっている同じ名前のこれらのコントローラ、ビュー、ヘルパーをすべて持っているという考えが嫌いです。

誰もがこれに対する洞察を持っていますか?前もって感謝します。

答えて

7

私は両方のコントローラ(1つのパブリックと1つの管理者)を持つことが最良のソリューションだと言います。

これで、両方のコントローラでアクション内の関連するアクションと同じメソッドが呼び出されるようになりました。

class MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    end 
end 

class Admin::MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    # Admin only stuff goes here 
    end 
end 
+0

ありがとう、Matt。これは理にかなっています。私はそれが「過ぎていない」という検証を必要としています。 – TMB

6

マットは言っていますが、これを行うことができたよう:

class MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    end 
end 

class Admin::MyController < MyController 
    def show 
    super 
    # Admin only stuff goes here 
    end 
end 

これはあなただけではなく、コードを繰り返すよりも、管理者:: MyControllerのためのより専門的な例に集中できることを意味します。

関連する問題