2012-02-14 81 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] %> 

等等每个新条目。所以,我想知道,有没有渲染的部分,以“观察”特定Flash变量的方式,让我甚至不必将它们传递的属性中呈现的看法?

+0

嗯,这个发布后,立即,我想,也许通过集合阵列可能可能做的伎俩。但我必须检查它。奇怪的是你有时会一个想法发布提问笑之后。 – Spyros 2012-02-14 03:22:50

回答

0

叶氏,尝试过了,工作正常。喜欢的东西:

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

其中msg_notifications只是充满了一切的哈希,因此它可以在干燥的方式来改变。简单,但有时头脑发挥糟糕的比赛:P