我有一個Rails應用程序。我的所有控制器都繼承自ApplicationController::Base
繼承的BaseController
這是爲了將我的部分組織到單獨的名稱空間中。它效果很好。Ruby中的多重繼承...繼承自多個控制器類。
這是問題所在。
我試圖使用Devise gem,但Devise::SessionsController
找不到我的分支,它們存儲在名爲Base的文件夾中。我的解決方案是創建一個從Devise::SessionsController
繼承了這樣的本地控制器:
module Account
class SessionsController < Devise::SessionsController
end
end
的問題是,這個地方SessionsController
仍然需要從我BaseController
繼承,因此它可以找到我的諧音。合理?
BaseController代碼:
module Account
class BaseController < ApplicationController
end
end
的ApplicationController代碼:
class ApplicationController < ActionController::Base
protect_from_forgery
end
我一直在閱讀有關的混入,但不能看我怎麼可以用混入來解決這個問題,因爲我不沒有任何方法可以從班級中導入...
'無法找到我的partials' => http://api.rubyonrails.org/classes/AbstractController/ViewPaths/ClassMethods.html#method-i-prepend_view_path – apneadiving 2013-03-05 16:00:13
你可以舉一個我將如何使用這個例子? – Arel 2013-03-05 16:13:48
def prepend_view_path(path) self._view_paths = ActionView :: PathSet.new(Array(path)+ view_paths) end這是繼承自Devise :: SessionsController的控制器嗎? – Arel 2013-03-05 16:15:13