繁体   English   中英

Rails-如何在模型中使用字符串访问相同名称的属性?

[英]Rails - How do I use a string to access an attribute of the same name, in a model?

为了DRY,我将索引页作为部分页面。 :locals的一部分传递给部分内容,如下所示:

: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的内容结尾。

有没有办法做到这一点,或者也许是做我正在尝试的更好的方法?

您正在为键attr_1分配值“名称”。 它永远是名字。

如果data_set中的对象具有名为name的属性,则根本不需要第二个变量。 你只需要做

<% data_set.each do |d| %>
  <%= d.name %>
<% end <%>

否则,如果您想搞砸并且确实想通过方法调用传递名称,因为,例如,您在数据集中有几种不同类型的对象,而可以这样做

<%= d.send attr_1 %>

哪个将“名称”发送给对象d。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM