2011-09-17 21 views
2

私は、表示されるコンテキストに応じて部分的にいくつかのものを別々に実行/表示できるのだろうかと思っていました。条件文のページに応じて、部分的にはRailsで条件付き?

たとえば、サイドバーとユーザページに表示される_user_infoパーシャルがあり、2番目のケースでいくつかの追加情報を表示したいとします。どのように私はそのような状況を表現できますか?

私は2つの別々のパーシャルに部分を分割し、必要な表示方から個別の部品を表示していましたが
if params[:controller].eql?('users') 
    view code 

:あなたが求めている何

答えて

2

が、このものです。

+0

偉大なので、私はコントローラーまたは/アクションでフィルタリングできますか? –

+0

はい、必要に応じて条件を設定できます。 – mark

1

もちろん、そのコンテキストをどのように発見して公開するかによって異なります。簡単な方法は、任意の数の方法で設定することができ、条件のセットから派生した条件付き条件です。フィルタ、アクションなどで発生する可能性があります。

変更が大きい場合は、別々の部分にカプセル化する方がよい場合があります。

もう1つの方法は、renderタグをこれらの条件を計算/取得するヘルパーにラップすることです。

などそれは一種のあなたがそれらに対処する方法/条件の性質に依存

+0

ユーザーのアバターをユーザーページのより大きなサイズで表示するような非常に小さな変更ですので、このケースではDRYを遵守し、2つの部分的な部分を作成して維持しない方が良いと思います...さまざまなパラメータを持つ私のユーザーのアバターメソッド、あなたは何が最良のオプションと思いますか? –

+0

いくつかの小さな変更がインライン(IMO)より優れています。一部の人々は、ヘルパーにそのようなものすべてを抽象化します。私はリターンが減少する点があると思いますが、私はその点を見ています。彼らが小さくなくても、それらをヘルパー、または部分的なものに変えるのは間違いありません。その線を描く場所は、しばしば個人の好みです。 –

0

または部分的に変数を経由して渡します。地元の人々が=>

4

あなたが使用することができますcontroller_nameおよびaction_nameの方法。

if controller_name == 'user' && action_name == 'show' 
    details 
end