<% @labels.each do |label| %>
<input type="text" name="<%=label.name%>" value="<%=@car.(label.related_to) %>" class="big-font" style="width: <%=label.width%>px; top: <%=label.y_coor%>px; left: <%=label.x_coor%>px;" />
<% end %>
大家好,我是rails的新手,所以这应该是一个相当容易回答的问题。
问题在于:<%=@car.(label.related_to) %>
。
label.related_to包含字符串“make”。我试图让它做到这一点:@car.make
任何想法的人?
谢谢, 阿兰
答案 0 :(得分:4)
使用send
向对象发送消息:
@car.send(label.related_to)
如果label.related_to
有可能不是该对象的有效方法,您可能希望准备好抓住NoMethodError
答案 1 :(得分:1)
您可以使用try
方法。
<%= car.try(label.related_to) %>
try
会尝试在car
上调用该方法。但是,如果方法(即make
)不存在,则会抛出错误。
您可以使用respond_to?
来确保该方法存在:
<%= car.try(label.related_to) if car.respond_to?(label.related_to) %>