我想动态显示数据库中的字段。即,如果假设在一种情况下我的 @user 对象从用户表中读取 @user = User.new
在另一种情况下,@user 对象从帖子表中读取 @user = Post.new
然后我的视图(新页面)动态显示基于所选模型的字段。
我想动态显示数据库中的字段。即,如果假设在一种情况下我的 @user 对象从用户表中读取 @user = User.new
在另一种情况下,@user 对象从帖子表中读取 @user = Post.new
然后我的视图(新页面)动态显示基于所选模型的字段。
<% 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 %>
这可能超出了您的要求,但也许您想看看演示者模式。这将使您的视图在隐藏视图逻辑的同时使用一个单一的界面。
我认为这篇文章会给你一个很好的主题介绍:http: //mikepackdev.com/blog_posts/31-exhibit-vs-presenter
我不同意萨利尔的观点。您永远不应该在视图(ERB)中进行分配。如果您这样做,您需要根据情况转向帮助者或演示者。
你为什么不只是走树?@users 应该按名称返回用户集合。@user.posts 将遍历关系树。我很好奇你为什么要与rails默认的工作方式作斗争。你能分享更多代码来帮助我们理解吗?