为了DRY,我正在将索引页面模板化为部分页面。 传入部分的本地人的一部分如下:
:locals => { :data_set => @accounts # @accounts is set in the controller as @accounts = Account.find(:all)
:attr_1 => "name" }
我希望能够在部分内容中执行以下操作:
<% data_set.each do |d| %>
<%= d.:attr_1 %>
<% end %>
我以前的尝试都打印了“name”,而不是d.name的内容,这就是我想要的。
有没有办法实现这一目标,或者更好的方式来做我正在尝试的事情?
答案 0 :(得分:0)
您正在为密钥attr_1分配值“name”。它总是名字。
如果data_set中的对象具有名为name的属性,则根本不需要第二个变量。你只需要做
<% data_set.each do |d| %>
<%= d.name %>
<% end <%>
否则,如果你想搞砸,并且确实想要将名称作为方法调用传递,因为比方说,你可以在数据集中使用几种不同类型的对象
<%= d.send attr_1 %>
将向对象发送“name”。