2013-05-20 41 views
1

我想說明從數據庫中dynamically.ie領域,如果假定在某一情況下 我@user對象從用戶讀取表 @user = User.new動態字段查看

在另一種情況下

@用戶對象從帖子中讀取表 @user = Post.new

然後動態地,我的視圖(新頁面)顯示基於所選模型的字段。

回答

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 %> 
+0

非常感謝,但我只想顯示錶格中的一些列,我不需要顯示created_at和updated_at。有沒有辦法做到這一點。 –

+0

或在我的第一個答案中將'@ object.class.column_names'更改爲'@object.class.column_names - exclude_columns' – Salil

+0

非常感謝。它滿足了我的要求。 –

0

我會用薩里爾不同意。你不應該在視圖(ERB)中進行分配。如果你這樣做,你需要依賴幫手或主持人。

爲什麼你不會只是走樹? @用戶應該按名稱返回一組用戶。 @ user.posts會遍歷關係樹。我很好奇你爲什麼要與鋼軌默認的工作方式作鬥爭。你能分享更多的代碼來幫助我們理解嗎?