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

如何在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 %>