Да, вы можете иметь дело с созданием в пользовательской модели.Определение ассоциации has_one автоматически включает методы для построения и создания (в этом случае это будут User # create_profile и User # build_profile).Хорошей практикой является установка обратного вызова before_create, которое вызывает build_profile, чтобы вы не получили потерянную запись пользователя, если профиль не сохранен.
Что касается контроллеров, я обычно неТ даже нравится делать отдельные контроллеры для профилей пользователей.Поскольку для каждой записи пользователя всегда будет одна запись профиля, вы можете считать, что атрибуты профиля логически эквивалентны атрибутам пользователя (они помещаются в свою собственную таблицу, в основном ради организации).Таким образом, вы можете просто привязать профиль к обычным операциям User CRUD.Если вам действительно нравится идея отдельного profile_controller, подумайте о том, чтобы настроить его как вложенный ресурс, поскольку у вас всегда будет user_id, когда вы работаете с профилем.