Ruby on rails enum

Ruby on Rails Enum - это удобный способ определения перечислений в моделях приложения. Пример использования: статус заказа можно представить как перечисление со значениями "Не завершен", "Завершен" и "Отменен".

Что такое Enum в Ruby on Rails?

Enum в Ruby on Rails - это метод, позволяющий определить список предопределенных значений для поля модели. Этот метод значительно упрощает работу с приложениями и позволяет избежать появления ошибок и неоднозначного поведения при вводе данных. Например, вам необходимо определить поле со статусом аккаунта в приложении. Это поле может иметь только четыре значения: активен, заблокирован, в процессе проверки и не подтвержден.

Для реализации подобного поля в Ruby on Rails можно использовать Enum:

class User < ActiveRecord::Base
	enum status: [:active, :blocked, :verifying, :unconfirmed]
end

Здесь мы определяем поле status модели User с четырьмя предопределенными значениями. Таким образом, вам не нужно беспокоиться о вводе некорректных значений. Также при использовании Enum можно определить дефолтное значение, например:

class User < ActiveRecord::Base
	enum status: [:active, :blocked, :verifying, :unconfirmed], _default: :active
end

Таким образом, при создании новой записи поле status будет автоматически заполнено значением active. Также с помощью Enum можно определить значения именно для определенной модели, что позволяет добавлять различные значения для разных моделей.

Для доступа к значениям поля Enum можно использовать следующие методы:

# Получить массив имен
user.status_names # => ["active", "blocked", "verifying", "unconfirmed"]

# Получить индекс значения
user.status # => 0

# Получить имя значения
user.status_name # => "active"

# Проверка значения
user.active? # => true

Таким образом, Enum в Ruby on Rails позволяет упростить работу с полями модели, определив для них список предопределенных значений. Это значительно улучшает работу приложения, предотвращая появление ошибок и неоднозначного поведения.

Ответы (0)