1

我想动态显示数据库中的字段。即,如果假设在一种情况下我的 @user 对象从用户表中读取 @user = User.new

在另一种情况下,@user 对象从帖子表中读取 @user = Post.new

然后我的视图(新页面)动态显示基于所选模型的字段。

4

3 回答 3

1
<% for column in @object.class.column_names %>
  <%= @object.send(column) %>
<% end %>

EDITED (To exclude some columns from the view)

exclude_columns = ['id', 'created_at', 'updated_at']
<% for column in @object.class.column_names 
     next if exclude_columns.include?(column) %>
  <%= @object.send(column) %>
<% end %>
于 2013-05-20T11:40:40.530 回答
0

这可能超出了您的要求,但也许您想看看演示者模式。这将使您的视图在隐藏视图逻辑的同时使用一个单一的界面。

我认为这篇文章会给你一个很好的主题介绍:http: //mikepackdev.com/blog_posts/31-exhibit-vs-presenter

于 2013-05-20T11:50:50.527 回答
0

我不同意萨利尔的观点。您永远不应该在视图(ERB)中进行分配。如果您这样做,您需要根据情况转向帮助者或演示者。

你为什么不只是走树?@users 应该按名称返回用户集合。@user.posts 将遍历关系树。我很好奇你为什么要与rails默认的工作方式作斗争。你能分享更多代码来帮助我们理解吗?

于 2013-05-21T01:46:27.823 回答