2012-02-14 11 views
0

私持っている私のようなエラーを表示するために定期的に使用する共有テンプレート:レンダリングされた部分的なローカル変数を観察できますか?

<%= render "shared/flash_error", :error => flash[:error], :info => flash[:info] %> 

私の見解は似ているように、この変数は、オプションです。私は必要だろうというとき

<% if defined?(error) and error %> 
    <div class="error"> 
     <%= error %> 
    </div> 
<% end %> 

<% if defined?(info) and info %> 
    <div class="info"> 
     <%= info %> 
    </div> 
<% end %> 

は今、例があります新しいオプションの変数を追加し、その部分を他のタイプのエラーで拡張します。しかし、これは、レンダリングを追いつかないようにする可能性があります。私は今すべてのレンダーを編集し、それを次のように変更する必要があります:

<%= render "shared/flash_error", :error => flash[:error], :info => flash[:info], :new_entry => flash[:new_entry] %> 

など、すべての新しいエントリが必要です。だから、レンダリングされたパーシャルを特定のフラッシュ変数を '観察する'ための方法があるのだろうかと思うので、レンダリングされたビューに属性として渡す必要はありません。

+0

hmm、これを投稿した直後に、おそらくコレクション配列を渡すことでおそらくトリックを行うことができると思いました。しかし、私はそれを確認する必要があります。奇妙なことに、質問を投稿した直後にアイデアを得ることがあります。 – Spyros

答えて

0

イェップ、それを試して、うまく動作します。何かのように:

<%= render "shared/flash_error", msg_notifications %> 

msg_notificationsはちょうどすべてが埋め込まれたハッシュなので、DRY方法で変更することができます。シンプルですが、時には心が悪いゲームをすることがあります:P

関連する問題