[英]How do I get a Rails association to use a certain name to access a model of a different name?
[英]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.