【问题标题】:Different layout for devise controller, problem when form errors设计控制器的不同布局,表单错误时的问题
【发布时间】:2011-04-19 09:47:59
【问题描述】:

我在 application_controller 中为我的登录和注册视图分配了不同的布局,如下所示:

  layout :layout_by_resource

  def layout_by_resource
    if devise_controller? && resource_name == :user && action_name == 'new'
      "login"
    else
      "application"
    end
  end

输入登录或注册信息时,它可以完美运行。但是注册时出现验证错误,标准应用程序布局被渲染。任何建议我做错了什么?

谢谢!

【问题讨论】:

    标签: ruby-on-rails views devise


    【解决方案1】:
      def layout_by_resource
        devise_controller? ? 'login' : 'application'
      end
    

    ;)

    【讨论】:

      【解决方案2】:

      好的,我自己修好了 ;) 必须检查 create 操作...

        layout :layout_by_resource
      
        protected
      
        def layout_by_resource
          if controller_name == 'registrations' && action_name == 'new'
            'login'
          elsif controller_name == 'registrations' && action_name == 'create'
            'login'
          elsif controller_name == 'sessions' && action_name == 'new'
            'login'
          else
            'application'
          end
        end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多