5

管理セクションと公開セクションを備えたWebアプリの設計。「インデックス」と「ショー」のためだけに公開されているコントローラーを持っているように感じますが、少し冗長です。私が読んだすべての提案は、adminの名前空間を示唆しています。これは問題ありません。「list_public」などの追加アクションを備えたコントローラーを1つ持つべきかどうか疑問に思います。

Railsは初めてなので、何も気にしないかもしれません。これらすべてのコントローラー、ビュー、同じ名前のヘルパーをプロジェクトディレクトリ全体に散らばらせるというアイデアは好きではありません。

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

4

2 に答える 2

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
于 2009-04-24T15:54:11.283 に答える
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

これは、コードを繰り返すのではなく、Admin::MyControllerのより特殊なケースに集中できることを意味します。

于 2009-09-05T08:38:59.503 に答える