我想說明從數據庫中dynamically.ie領域,如果假定在某一情況下 我@user對象從用戶讀取表 @user = User.new動態字段查看
在另一種情況下@用戶對象從帖子中讀取表 @user = Post.new
然後動態地,我的視圖(新頁面)顯示基於所選模型的字段。
我想說明從數據庫中dynamically.ie領域,如果假定在某一情況下 我@user對象從用戶讀取表 @user = User.new動態字段查看
在另一種情況下@用戶對象從帖子中讀取表 @user = Post.new
然後動態地,我的視圖(新頁面)顯示基於所選模型的字段。
<% 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 %>
比你所要求的,這可能是多,但也許你想看看演示模式。這將讓您的視圖在隱藏視圖邏輯的同時使用單一界面。
我認爲這篇文章會給你一個很好的介紹話題:http://mikepackdev.com/blog_posts/31-exhibit-vs-presenter
我會用薩里爾不同意。你不應該在視圖(ERB)中進行分配。如果你這樣做,你需要依賴幫手或主持人。
爲什麼你不會只是走樹? @用戶應該按名稱返回一組用戶。 @ user.posts會遍歷關係樹。我很好奇你爲什麼要與鋼軌默認的工作方式作鬥爭。你能分享更多的代碼來幫助我們理解嗎?
非常感謝,但我只想顯示錶格中的一些列,我不需要顯示created_at和updated_at。有沒有辦法做到這一點。 –
或在我的第一個答案中將'@ object.class.column_names'更改爲'@object.class.column_names - exclude_columns' – Salil
非常感謝。它滿足了我的要求。 –