用于减少HTML重复的Rails方法

时间:2010-07-20 05:47:16

标签: ruby-on-rails performance dry

在我的.html.erb文件中,我有很多信息要显示。我用一个简单的方法完成了这个:(使用蓝图css)

<% for event in @user.events %>
<div class="span-5 border">Descriptor:</div> <div class="span-5 last"><%=h event.foo%></div><br/>
<% end %>

我怎样才能这样做,以便我可以调用一些能够呈现信息部分的函数,并且我只传递Descriptor(一个字符串文字)和事件的方法(在这种情况下为“foo”)。

我是rails的新手,我认为这可以使用部分渲染来完成,但我并不完全确定。

由于

2 个答案:

答案 0 :(得分:1)

render :partial => 'event', :collection => @user.events, :locals => {:descriptor => 'descriptor', :method => 'foo'}

如果您使用的是最新版本的rails,则此速记版本也可以使用:

render @user.events, :locals => {:descriptor => 'descriptor', :method => 'foo'}

在你的部分

<div class="span-5 border"><%= descriptor -%></div> <div class="span-5 last"><%=h event.send(method) %></div><br/>

答案 1 :(得分:0)

您可以使用partials。 它的优点在于它使代码DRY。也可以通过Ajax回调替换特定的div。 在文件名上保存带有前缀'_'的部分,如_test.rhtml

render :partial => 'test', :layout => false