2009-08-21 13 views
7

私は、ビューがコントローラにどのように話すかと同様に、いくつかのロジックを持つサイドバーを持っています。部分的にロジックを置く場所はどこですか?レイアウト用の新しいコントローラを作成してそこに配置しますか?レイアウト上の部分的な部分のruby on ruby​​ロジック

レイアウトは、ダッシュボードなどのログインしたユーザー向けです。 ダッシュボードには、すべてのページで同じ動的コンテンツを表示するサイドバーがあります。 それはすべてのページに表示されているので、部分的に入れたいと思います。

私はちょうど、どこにその情報を置くのか混乱しています。

答えて

8

おそらくこれを行うより良い方法がありますが、それがほとんどまたはすべてのページにある場合、ApplicationControllerにbefore_filterを作成することができます。データを必要としないコントローラ/アクションでskip_before_filterに電話する必要があります。

class ApplicationController < ActionController::Base 
    before_filter :load_sidebar_data 

protected 
    def load_sidebar_data 

    end 
end 

あなたはまだApplicationControllerに方法を置くところほとんどのページにそれを必要としない場合、あなたはちょうどあなたがそれを必要とする前にフィルタを追加したいです。

+0

アンディ、あなたがこれらの過去2日間私には大きな助けとなってきました!ありがとう! – Ryan

+0

私は、ホームページ以外のすべてのページで同じサイドバーを持っています。このコードを使用して必要なデータを取得しています。実際のビュースクリプトコードを置く場所はどこですか? – jackocnr

1

レイアウトフォルダにパーシャルを配置します。ファイルの名前はアンダースコアで始まる必要があります(例: "_mypartial.html.erb")。

はその後、あなたの意見では、レンダリングされ、部分指定するときに埋め込まれたRubyコードでアンダースコアが含まれていない部分

「mypartial」%>

注意を含めるために、次のコードを使用します。

1

あなたは細胞(Railsのためのビューコンポーネント)を使用して検討するかもしれない:http://cells.rubyforge.org/

関連する問題