rails视图中的动态字段

时间:2013-05-20 11:21:23

标签: ruby-on-rails ruby ruby-on-rails-3

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

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

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

3 个答案:

答案 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将遍历关系树。我很好奇你为什么要与铁轨默认的工作方式作斗争。你能分享更多代码来帮助我们理解吗?