0

みんな。私はrefineryCMS(およびレールも)が初めてです。問題の説明が長すぎる場合に備えて、この記事の最後に質問をまとめました。

これが私の質問です: ルート (または名前空間) を使用してバックエンドのコンテンツをフィルタリングするにはどうすればよいですか? たとえば、サイトにいくつかの部門があります。構造は似ていますが、内容は異なります。分けて管理したい。たとえば、部門 ABC と部門 EFG と部門 MAIN があり、それらを /refinery/ABC と /refinery/EFG と /refinery(/MAIN) で管理したいとします。

どうすればこのようなことを達成できますか?

現在、私は2つのアイデアを持っていますが、実装方法がわかりません。

まず、各部門を Rails エンジンとして作成し、main_app にマウントします。ただし、各部門の構造が非常に似ているため、ほとんど同じテーブルが多数複製されるため、このソリューションは好きではありません。そして、私はエンジンの作成に慣れておらず、パフォーマンスについて心配しています。

私が考えた 2 番目の方法は、すべての Refinery::Pages、リソース、およびカスタム エンジン モデルを特定の部門に属するようにすることです。そして、前述の「/refinery/:department」のように部門を指定することで、これらすべてをフィルター処理するコントローラーを作成できます。

要するに、方法はわかりませんが、2番目の方法を好みます。

  1. すべてのモデル (カスタム エンジンまたはリファイナリー ネイティブのもの) を部門に所属させます。特にRefineryネイティブのもの(リソース、画像、ページ)の場合

  2. コントローラーが必要なコンテンツをフィルタリングした後、製油所のデフォルトのバックエンドのような管理レンダリングを複製する方法。

  3. いくつか検索したところ、適切にフィルタリングするには @variables が多すぎることがわかりました。もっと簡単な方法はありますか?

前もって感謝します!

4

1 に答える 1

0

Routes.rb
を入れてみてください:

get 'refinery/:dep' => 'refinery#deps'

次に、製油所コントローラーであなたのプット

def deps
  dep = params[:dep]
  *some code*
end
于 2012-07-31T10:08:08.203 に答える