Rails, как создавать разные виды? - PullRequest
1 голос
/ 06 марта 2011

Как создать разные режимы просмотра. Как посетитель может выбрать список или окно просмотра.

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Я почти согласен с экологическим. Вместо второго решения я бы использовал что-то вроде оператора case в контроллере, который решает, какой шаблон следует отобразить.

Как создать вспомогательный метод?

Добавить в <controller_name>_helper файл

1 голос
/ 06 марта 2011

Зависит от того, насколько похожи эти представления, что я хотел бы сделать, это создать партиалы для каждого представления, а затем в главном представлении я вызываю правильное в зависимости от свойства.Скажем, у вас есть функция в 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 %>

Не лучшая практика, но она работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...