Ошибка возникает из-за того, что переменная @user равна nil, поэтому вызов (nil) .save завершится ошибкой. Это означает, что User.new (params [: user]) возвращает nil, что никогда не должно происходить. User.new всегда должен возвращать запись, даже если она недействительна.
Итак, поскольку контроллер выглядит довольно обычным образом, я сделаю снимок в темноте и предложу проверить вашу модель User на «новый» метод. Возможно, вы переопределяете «новый» метод ActiveRecord с помощью некоторой логики, которая возвращает nil и ломает ваш контроллер. Если это так, вы должны заменить «def new» другим именем метода.
Если это не поможет, предоставьте нам код вашей модели пользователя.