Rails如何创建不同的视图?

时间:2011-03-06 18:53:36

标签: ruby-on-rails ruby-on-rails-3

如何创建不同的视图模式。像访问者可以选择列表或框视图。

2 个答案:

答案 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文件