如何在erb视图中动态访问模型的属性数据?

时间:2013-04-24 21:15:29

标签: ruby-on-rails erb

我想根据保存的顺序显示项目列表。例如,在我的模型(@gallery)中,我有一个名为serializedmenu的字段,其中包含特定顺序的菜单项。

现在根据菜单项名称,我想构建对包含实际数据的属性的引用并显示数据。

例如:

listname_for_video和listname_for_textbox是模型的实际属性。

使用下面的代码,我循环遍历仅包含属性名称的一部分的menulist,并构建对该属性的最终引用:

对于此示例,@ menulist是一个包含视频和文本框名称的数组。

<% @menulist = YAML::load(@gallery.serializedmenu) %>

<% @menulist.each do |menuitem| %>
<li>
  <a href="#<%=menuitem%>" >
  <%  myvar = "@gallery.listname_for_" +  menuitem %>
  <%= myvar %>  
  </a>
</li>
<% end %>

不幸的是,这不起作用,因为myvar只打印字符串“@ gallery.listname_for_video”而不是实际数据。

Thanx供你输入。

1 个答案:

答案 0 :(得分:0)

哦,那真的很容易。在我发布这个问题之前,我应该进行更多搜索。 您可以在变量myvar

之前插入关键字eval

这将为您提供实际数据:

<% eval mvar %>