Ruby - изменить макет при отпускании кнопки без изменения URL - PullRequest
0 голосов
/ 23 января 2012

Я бы хотел, чтобы моя Flash-анимация работала в полноэкранном режиме, когда я нажимаю кнопку html под анимацией.У меня есть ../views/layout/viewer.rhtml (этот загружает все меню).У меня есть ./views/layout/fullscreen.rhtml (у этого нет меню, у него есть только 100% ширина и 100% высота и объект flash).Я хотел бы избежать использования метода Javascript.

У меня есть show_controller:

    layout "viewer"

 def index
    h = Histoire.find_by_label(params[:story_name])
    # Checks if current_user has a subscription which allows the story whose ID is passed by param to be seen
    if h.price != 0 && (current_user.nil? || current_user.abonnement.histoires.delete_if{|histoire| histoire.label != params[:story_name]}.length == 0)
      flash[:notice] = "Sorry, your subscription doesn't allow you to access this story, please contact sales service"
      redirect_to index_url
    else

      @histoire = Histoire.find_by_label(params[:story_name])
      render :action => :show
    end
  end

У меня есть флэш-объект:

В моей Flash-анимации должен быть фиксированный URL-адрес дляЗапустите: / show / Story_Name, текущий макет просмотра.Когда я нажимаю кнопку FullScreen, я бы хотел, чтобы Ruby сменил макет с «просмотра» на «полный экран».

Есть ли способ изменить макет просмотра в полноэкранный режим при нажатии кнопки?

Я новичок в этом вопросе.Большое спасибо тому, кто мне поможет.

1 Ответ

0 голосов
/ 23 января 2012

Ruby-код выполняется на стороне сервера, он не будет ничего делать, пока вы не перезагрузите страницу, чтобы сделать еще один вызов вашему контроллеру, например, с помощью параметра "layout_mode", который вы можете использовать в шаблоне представления.

Я бы использовал ненавязчивый подход к JavaScript:

  • используйте ссылку, чтобы перезагрузить страницу и изменить layout_mode на полноэкранный режим. Такое поведение позволяет пользователю с отключенным Javascript получить доступ к функции полноэкранного переключения
  • используйте jQuery, чтобы изменить эту ссылку, чтобы она изменяла макет при нажатии без перезагрузки страницы для обычных пользователей

Дополнительное примечание : Я бы посоветовал вам избегать именования объектов модели на французском языке, поскольку Rails строго ориентирован на условные обозначения и широко использует интонации английского языка: Rails будет рассматривать истории как коллекцию и история как отдельный участник. Это будет работать с "gourou" и "joujou", но не с "hibou", "caillou", "chou" ...;)

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