我们有一个工作应用程序使用设计的身份验证(电子邮件,密码)。
为了添加移动界面,我们使用jQuery移动-一切都很好,除了通过设计登录不会表现。
点击" login "后,Rails正确处理请求,但我们得到的是MissingTemplate(设计/会话/创建)错误。
当前设置:
config.http_authenticatable_on_hxr = false
config.navigational_formats = [:"*/*", "*/*", :html, :mobile]
我们的灵感来自Railscast #199(因此:mobile
): http://railscasts.com/episodes/199-mobile-devices
尝试本指南的最后一步:如何:使设计工作与其他格式,如手机,iphone和ipad(特定于Rails)。
记得用:to_mobile而不是:to_ios,所以:
ActionController::Responder.class_eval do
alias :to_mobile :to_html
end
在config/initializers
覆盖设计的SessionsController
作品。我从github中获取了控制器的代码,并为移动设备添加了redirect_to:
app/controllers/sessions_controller.rb
:
class SessionsController < Devise::SessionsController
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
if mobile_device?
redirect_to wherever_you_want
else
respond_with resource, :location => redirect_location(resource_name, resource)
end
end
end
在routes.rb
中:
devise_for :users, :path => '/', :controllers => { :sessions => "sessions" }
不要忘记创建app/views/sessions/
模板
查看这篇文章
jQuery Mobile, Rails和design
在我的应用程序中,我添加了新的视图设计/会话/create.mobile。Erb和设置在这个视图javascript重定向在某些页面。这看起来不是一个正确的解决方案,但它工作。