Ruby on rails 减少HTML重复的Rails方法

Ruby on rails 减少HTML重复的Rails方法,ruby-on-rails,performance,dry,Ruby On Rails,Performance,Dry,在我的.html.erb文件中,我有很多行信息要显示。我用一个简单的方法来实现这一点:(使用blueprint css) 描述符: 如何使它能够调用一些函数来呈现信息部分,并且只传递描述符(字符串文本)和事件的方法(在本例中为“foo”) 我是rails新手,我认为这可以通过使用部分渲染来实现,但我不完全确定 谢谢 如果您使用的是最新版本的rails,那么这个速记版本也可以: render @user.events, :locals => {:descriptor => 'des

在我的.html.erb文件中,我有很多行信息要显示。我用一个简单的方法来实现这一点:(使用blueprint css)


描述符:
如何使它能够调用一些函数来呈现信息部分,并且只传递描述符(字符串文本)和事件的方法(在本例中为“foo”)

我是rails新手,我认为这可以通过使用部分渲染来实现,但我不完全确定

谢谢

如果您使用的是最新版本的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/>

您可以使用partials。 它的优点是使代码变得枯燥。此外,您还可以使用Ajax回调替换特定的div。 在文件名上保存前缀为“u”的部分,如_test.rhtml

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

那event.erb会是什么样子?嗨,雷蒂。对不起,描述不完整,我已经编辑了答案。这应该可以,但如果不行,请告诉我。谢谢你迄今为止的帮助。我把
{:descriptor=>'descriptor',:method=>'foo'}%>
放在
下面,你说的部分放在正确的位置,但现在它说的是“descriptor”未定义。我还尝试了您提供的另一个渲染,但它表示事件未定义。发生了什么?在第二种情况下,它没有找到部分文件,这可能意味着它不在同一目录中或名称不同-它应该用前缀下划线命名-“event.html.erb”。第一种情况,您应该删除for循环;render@user.events将其设置为数组并对其进行迭代。至于为什么描述符是未定义的,我不确定,但尝试删除循环,看看会发生什么。我假设描述符只是一个正在传递的字符串,如示例中所示?\u event.html.erb“而不是。。。另外,导轨也非常好-
<div class="span-5 border"><%= descriptor -%></div> <div class="span-5 last"><%=h event.send(method) %></div><br/>
render :partial => 'test', :layout => false