如何创建不同的视图模式。就像访客可以选择列表或框视图。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. ios:如何从IB中的一个视图创建两个不同的视图?
- 5. 如何使用不同权限的视图创建页面
- 6. 如何创建与视图边界不同的accessibilityFrame?
- 7. 如何使用图像创建不同类型的视频
- 8. 如何为2个不同的视图创建共享模型?
- 9. 如何在不同的视图控制器中创建插座?
- 10. 如何用视图中的不同形式创建页面(yii2)?
- 11. 如何按角色为不同用户创建多个视图?
- 12. 如何在不同视图中为日期创建倒计时?
- 13. 如何创建视图?
- 14. 如何创建树视图?
- 15. 如何创建视差图?
- 16. Ruby/Rails如何创建从一个视图到另一个视图的链接
- 17. 如何创建知道完整路线的视图。 (Rails 3)
- 18. 如何创建评论视图? (Ruby on Rails)
- 19. MYSQL - 不能创建视图
- 20. 如何在Rails视图中访问不同的对象集合?
- 21. 如何在Rails中创建图形?
- 22. 如何在不同视图中重用相同的表视图?
- 23. 在一个视图中的几个UIAlertView中:如何创建不同的代表
- 24. 使用不同的风格在rails中的不同视图
- 25. 创建视图
- 26. 创建视图?
- 27. 创建视图
- 28. Rails:从不同视图查询模型
- 29. 如何基于来自不同服务器的表创建视图?
- 30. 如何用不同的视图控制器创建封面流程?
我寻求帮助,也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