我想动态显示数据库中的字段。如果想的话 在一种情况下,我的@user对象从users表中读取 @user = User.new
在另一种情况下,@ user对象从posts表中读取 @user = Post.new
然后动态我的视图(新页面)显示基于所选模型的字段。
答案 0 :(得分:1)
<% for column in @object.class.column_names %>
<%= @object.send(column) %>
<% end %>
已编辑(要从视图中排除某些列)
exclude_columns = ['id', 'created_at', 'updated_at']
<% for column in @object.class.column_names
next if exclude_columns.include?(column) %>
<%= @object.send(column) %>
<% end %>
答案 1 :(得分:0)
这可能比你要求的要多,但也许你想看一下presenter模式。这将使您的视图在隐藏视图逻辑的同时使用单个界面。
我认为这篇文章会为您提供一个很好的介绍:http://mikepackdev.com/blog_posts/31-exhibit-vs-presenter
答案 2 :(得分:0)
我不同意萨利尔。你永远不应该在视图中指定(ERB)。如果你这样做,你需要转向助手或演示者。
为什么你不只是走树? @users应该按名称返回一组用户。 @ user.posts将遍历关系树。我很好奇你为什么要与铁轨默认的工作方式作斗争。你能分享更多代码来帮助我们理解吗?