设计控制器的布局不同,形式错误时出现问题

Tro*_*nic 5 views ruby-on-rails devise

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

  layout :layout_by_resource

  def layout_by_resource
    if devise_controller? && resource_name == :user && action_name == 'new'
      "login"
    else
      "application"
    end
  end
Run Code Online (Sandbox Code Playgroud)

进入登录或注册信息时,它完美无缺.但是在注册时存在验证错误,标准应用程序布局会被渲染.我有什么错误吗?

谢谢!

Die*_*ntz 7

  def layout_by_resource
    devise_controller? ? 'login' : 'application'
  end
Run Code Online (Sandbox Code Playgroud)

;)


Tro*_*nic 4

好吧,我自己修好了;)必须检查创建操作......

  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
Run Code Online (Sandbox Code Playgroud)