设计(2.1)在我告诉它使用自定义控制器之前一直很好地使用我的自定义视图。现在它忽略了我的自定义视图。
以前一切正常:
告诉 Devise 在/config/devise.rb
# ==> Scopes configuration
# Turn scoped views on. Before rendering "sessions/new", it will first check for
# "users/sessions/new". It's turned off by default because it's slower if you
# are using only default views.
config.scoped_views = true
添加自定义视图:/app/views/subscribers/session/new.html.erb
在中设置路线/config/routes.rb
devise_for :subscribers
然后我添加了一个自定义的 SubscriberSessionsController作为/app/controllers/subscriber_session_controller.rb
class SubscriberSessionsController < Devise::SessionsController
before_filter :isInIframe
private
def isInIframe
@hide_navbar = session[:in_iframe]
end
end
并修改 /config/routes.rb 告诉 Devise 使用这个新的控制器而不是它的默认值:
devise_for :subscribers, :controllers => {
:sessions => "subscriber_sessions"
}
重新启动服务器后,Devise 现在会使用此控制器,但会忽略我的自定义视图。