如何創建不同的視圖模式。就像訪客可以選擇列表或框視圖。Rails如何創建不同的視圖?
回答
這取決於這些視圖的相似程度,我要做的是爲每個視圖創建部分,然後在主視圖中根據屬性調用正確的視圖。假設你有在application_helper
which_view
在你的函數index
你可以寫這樣的事情:
<!-- your index -->
<%= render which_view == :box ? 'index_box' : 'Index_list' %>
我更喜歡以前的,但如果你有一些改變,你可以去這樣的事情:
<% if session[:view_type] == 'box' %>
<!-- box content -->
<% else %>
<!-- list content -->
<% end %>
**編輯**
使動作:
# application_controller.rb
def set_view_type # TODO: refactor
session[:view_type] = params[:view_type]
redirect_to :back
end
設置你的路由:
# routes.rb
match '/set_view_type' => 'application#set_view_type', :as => :set_view_type
寫您的形式:
<!-- _view_type_selection.html.erb -->
<%= form_tag set_view_type_path do %>
<%= radio_button_tag :view_type, :box, session[:view_type] == 'box' %>
<%= radio_button_tag :view_type, :list, session[:view_type] == 'list' %>
<%= submit_tag 'select' %>
<% end %>
不是最好的做法,但它的工程!
如何創建輔助方法? – 2011-03-06 19:08:27
我幾乎同意生態學。而不是第二個解決方案,我會使用控制器中的case語句來決定應該呈現哪個模板。
如何創建輔助方法?
將其添加到<controller_name>_helper
文件
啊是的!這是更好的,你避免渲染渲染部分的切換器! - 也許你對如何存儲價值有一個好主意,我不太喜歡它 – ecoologic 2011-03-06 23:53:02
我不知道整個Rails初學者的想法,但不是存儲它,我寧願在URL中看到它。所以如果我發送一個有趣的頁面鏈接,它看起來和我的屏幕一樣,我可以在該頁面上導航收件人。或者我可以直接用鏈接發送鏈接,它可以在一個佈局中,而不是在另一個佈局中。它也更好的書籤等... 我不知道任何英語的例子,但看看這個http://tv.seznam.cz/radkovy-program和這個http://tv.seznam.cz/sloupcovy-program 。我可以發送這些鏈接之一,並說「看第二行/列」 – Mailo 2011-03-07 00:04:59
我明白你的pov,我個人不喜歡在URL中存儲參數,但想到一個客人選項,它是非常有意義的 – ecoologic 2011-03-07 20:38:56
- 1. Rails視圖:創建菜單
- 2. Rails-如何爲已創建表創建視圖
- 3. 如何爲ArrayAdapter的最後一項創建不同的視圖?
- 4. 如何使用創建視圖用於不同的目的?
- 5. ios:如何從IB中的一個視圖創建兩個不同的視圖?
- 6. 如何在不同的視圖控制器中創建插座?
- 7. 如何在表視圖中創建不同的列?
- 8. 如何使用不同權限的視圖創建頁面
- 9. 如何創建不與舊窗口同步的jEdit「新視圖」
- 10. 如何創建與視圖邊界不同的accessibilityFrame?
- 11. 如何使用圖像創建不同類型的視頻
- 12. 如何用視圖中的不同形式創建頁面(yii2)?
- 13. 如何使用與源表不同的列名創建視圖
- 14. 如何爲2個不同的視圖創建共享模型?
- 15. 如何按角色爲不同用戶創建多個視圖?
- 16. 如何使用2個不同模型創建視圖模型
- 17. 如何在不同視圖中爲日期創建倒計時?
- 18. 如何創建鏈接到Rails中的對象的json視圖?
- 19. 如何創建視圖
- 20. 如何創建視圖?
- 21. 如何創建樹視圖?
- 22. 如何創建視差圖?
- 23. 如何創建知道完整路線的視圖。 (Rails 3)
- 24. 如何更改Rails上新創建的默認視圖
- 25. Ruby/Rails如何創建從一個視圖到另一個視圖的鏈接
- 26. 如何在同一視角創建多個eclipse視圖..?
- 27. Rails的兩種不同的JSON視圖
- 28. Rails從活動記錄創建視圖
- 29. Rails創建視圖幫助程序
- 30. Rails在同一個視圖上創建和編輯
我尋求幫助,也http://codereview.stackexchange.com/questions/1192/how-to-manage-different-views – ecoologic 2011-03-07 20:40:32
[和清潔解決方案終於到了!](http://codereview.stackexchange.com/questions/1192/how-to-manage-different-views/10319#10319) – ecoologic 2012-03-25 16:30:02