ruby - Rails 3.2.3 namespaced controllers being overridden by global controllers with same name -
when global application controller loaded first, namespaced application controller not load when loading pages within namespace. application controller looks this:
class applicationcontroller < actioncontroller::base protect_from_forgery end and namespaced application controller looks this:
class admin::applicationcontroller < applicationcontroller def authenticate_admin! if current_admin.nil? redirect_to new_admin_session_url end end private def current_admin @current_admin ||= admin.find(session[:admin_id]) if session[:admin_id] end helper_method :current_admin end when use before_filter "authenticate_admin!" this:
class admin::assetscontroller < admin::applicationcontroller before_filter :authenticate_admin! end a "nomethoderror in admin::assetscontroller#new" thrown. occurs when hit global route before namespaced route. if server restarted , namespaced route loaded first works properly.
this happening because happen have admin model (a class) same name namespace.
this google group thread provides explanation of happening.
to fix, either rename model adminuser or if not possibility, renaming namespace fix issue.
Comments
Post a Comment