Devise(2.1)使用我的自定義視圖,直到我告訴它使用自定義控制器。現在它忽略了我的自定義視圖。覆蓋會話控制器防止正在使用的自定義視圖
以前的一切工作得很好:
泰爾設計使用自定義視圖/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_for :subscribers, :controllers => {
:sessions => "subscriber_sessions"
}
一旦我重啓我的服務器,Devise現在使用這個控制器,但忽略我的自定義視圖。
這仍然是Rails 4和Devise 3.5的情況,模板路徑必須與類名相匹配。你應該接受你的答案是正確的。 – Barry