5

i assigned a different layout for my sign in and sign up view in the application_controller like this:

  layout :layout_by_resource

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

when entering sign in or sign up information it works perfectly. but there are validation-errors on sign up, the standard application layout gets rendered. any advice what i have done wrong?

thanks!

trnc
  • 20,581
  • 21
  • 60
  • 98

2 Answers2

7
  def layout_by_resource
    devise_controller? ? 'login' : 'application'
  end

;)

Diego Plentz
  • 6,760
  • 3
  • 30
  • 31
4

okay, fixed it myself ;) had to check for the create action...

  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
trnc
  • 20,581
  • 21
  • 60
  • 98