如何在erb视图中动态访问模型的属性数据?
问题描述:
我想根据它们保存的顺序显示项目列表。例如,在我的模型(@gallery)中,我有一个名为serializedmenu的字段,其中包含特定顺序的菜单项。如何在erb视图中动态访问模型的属性数据?
现在基于菜单项名称,我想建立一个对包含实际数据并显示数据的属性的引用。
例如:
listname_for_video和listname_for_textbox是模型的实际属性。
使用下面的代码,我通过仅包含属性名称的一部分,并且我建立最终的参考属性的菜单列表循环:
对于此示例,@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为您的输入。
答
哦,那真的很简单。在发布这个问题之前,我应该搜索更多。 您可以变量MYVAR之前插入关键字EVAL
这将让你的实际数据:
<% eval mvar %>