如何创建不同的视图模式。像访问者可以选择列表或框视图。
答案 0 :(得分:1)
这取决于这些视图的相似程度,我要做的是为每个视图创建局部视图,然后在主视图中根据属性调用正确的视图。假设您在application_helper
的{{1}} 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
不是最佳实践,但它有效!
答案 1 :(得分:1)
我几乎同意生态学。而不是第二种解决方案,我将使用控制器中的case语句来决定应该呈现什么模板。
如何创建辅助方法?
将其添加到<controller_name>_helper
文件