Действие контроллера на основе медиазапроса (Rails)

У меня есть специальная панель инструментов для моего приложения на Rails, которая отображается пользователям с помощью медиазапроса. Я хотел бы предложить перенаправить пользователей на мобильных устройствах (через медиа-запросы) на эту конкретную панель мониторинга при входе в систему.

Каков хороший способ сделать это, пытаясь избежать того, чтобы рельсы действительно что-то обнаруживали? Я смотрел на драгоценные камни, как browser немного, но я хотел бы что-то более всеобъемлющее и настраиваемое, например, медиа-запрос.

Любые предложения о местах, где можно начать поиск, или какой код я мог бы добавить в свой View / JS / CSS, чтобы это произошло?

Я бы предпочел запустить конкретное действие контроллера для определенных медиа-запросов, но я чувствую, что это может быть недостижимой мечтой.

1 ответ

Я думаю, что вы можете использовать варианты для достижения этой цели.

С variant вариант, вы можете сделать что-то вроде этого, чтобы отобразить различные виды панели:

respond_to do |format|
  format.html do |html|
    html.desktop # renders app/views/projects/show.html+desktop.erb
    html.mobile { extra_setup; render ... }
  end
end

Или вы можете разработать мобильные дружественные представления для всех действий и сделать это (используя browser драгоценный камень):

before_action :define_variant

def define_variant
  request.variant = :tablet if browser.phone?
end
Другие вопросы по тегам