Мобильное приложение Ruby on Rails - PullRequest
3 голосов
/ 26 февраля 2011

Я пытаюсь разработать приложение Ruby on Rails, которое будет определять клиента, т.е. мобильное устройство (браузер), которое подключается к серверу, и отображать соответствующий макет.Я попытался использовать следующую ссылку, но все еще не смог подключиться.Есть предложения?

http://www.arctickiwi.com/blog/mobile-enable-your-ruby-on-rails-site-for-small-screens

Я использую Opera Mini Emulator для тестирования приложения.

1 Ответ

7 голосов
/ 27 февраля 2011

Самое элегантное решение для этого, которое я видел, - это делать две вещи: распознавать мобильных пользователей на основе user-agent в запросе и использовать пользовательский тип Mime Rails для ответа, позволяя настраивать шаблоны HTML для мобильных пользователей.

Определите пользовательский «мобильный» тип MIME Rails в config/initializers/mime_types.rb, это просто HTML:

Mime::Type.register_alias "text/html", :mobile

Добавьте помощник / фильтр для ответа мобильным пользователям:

def mobile_user_agent?
  @mobile_user_agent ||= ( request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(Mobile\/.+Safari)/] )
end

then ..

before_filter :handle_mobile

def handle_mobile
  request.format = :mobile if mobile_user_agent?
end

Создание собственного мобильного шаблона:

app/views/users/show.html.erb => app/views/users/show.mobile.erb

Отправка мобильного или обычного в контроллеры:

respond_to do |format|
  format.html { }   # Regular stuff
  format.mobile { } # other stuff
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...