Действие контроллера на основе медиазапроса (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