Вы не можете использовать root_path
в качестве второго параметра для sign_in_and_redirect
. Вот несколько доступных способов его использования:
sign_in_and_redirect :user, @user # sign_in(scope, resource)
sign_in_and_redirect @user # sign_in(resource)
sign_in_and_redirect @user, :event => :authentication # sign_in(resource, options)
sign_in_and_redirect @user, :bypass => true # sign_in(resource, options)
Поскольку ваш второй параметр не является ни ресурсом, ни опциями (это строка), вы получаете сообщение об ошибке. Вам нужно изменить его на:
sign_in_and_redirect(:user, user) # based on your pastie
Если вы хотите настроить путь возврата, чтобы заставить его перейти на другой URL-адрес после входа в систему, вы можете сделать что-то подобное в вашем ApplicationController:
def after_sign_in_path_for(resource)
"/go/to/this/path"
end