2010-12-15 5 views
1

最近、私はDRYビューの最先端技術が何であるか不思議です。私は3年半以上進化してきたアプリを手に入れています。最近では、ビュー層は幸せな場所ではありません。Rails:ロールベースのユーザーのためのDRYビュー

まず最初に、私はいくつかの異なるユーザーグループによって使用されるアプリを手に入れました。さらに追加する必要があります。異なるユーザーが見るものの間には重大なオーバーラップがありますが、まだ各グループに排他的なものがたくさんあります。ユーザーは何がどの程度詳細に表示されるかを制限しています。それはあなたの標準的な役割ベースのWebアプリケーションです。

現在のところ、アプリは部分変数(ローカル変数を含む)の不具合を使い、partials、content_forのブロックとヘルパー、そしてたくさんの複製を使っています。

私が探しているのは、自分の意見を守るために最近何をしているのですか?

私はCells(http://cells.rubyforge.org/)を見て始めましたが、私はこの問題を解決するために他に何があるのだろうと思いました。

複雑なビューとロールベースのビューでは何を使用していますか?

+0

私は一般的な答えが存在するとは思わない。 – Lichtamberg

答えて

1

私は同じ問題/チャレンジに直面しています。私はCellを実装し始めましたが、壁にぶつかりました.'content_for 'は期待通りの方法でサポートされておらず、セルビューを使ってマスターレイアウトにコンテンツを追加することはできません。

これはRailsの制限であり、Cellがレールを使用する方法であり、実際には回避できません。

この制限で暮らすことができるのであれば、繰り返しのコンテンツブロックに最適なソリューションだと思います。

少しofftopic私にとっては上記の問題を解決する最善の方法は以下の通りです:

セル全体は、異なるコンテンツの素敵なAPIを取得するために使用することができ、次のブロックでレンダリングする必要がある場合:

def render_cell_for(id, cell, action, options = nil, &block) 
    content_for id do 
    render_cell(cell, action, options, &block) 
    end 
end 

使用

<%=render_cell_for(:content_for, :cell, :action) %> 

application_helper.rbに次のコードを入れてください

は、ブロック内のコンテンツ内でレンダリングするビューです。

関連する問題