Это больше вопрос стиля, мне интересно, что делают другие люди.
Допустим, в моей базе данных есть поле с названием "status" для сообщения в блоге. И я хочу, чтобы в качестве примера у него было несколько возможных значений, таких как «черновик», «ожидающий проверки» и «опубликованный».
Очевидно, что мы не хотим «жестко кодировать» эти магические значения каждый раз, это не будет СУХОЙ.
Так что я иногда делаю что-то вроде этого:
class Post
STATUS = {
:draft => "draft",
:awaiting_review => "awaiting review",
:posted => "posted"
}
...
end
Тогда я могу написать код, ссылаясь на него позже как STATUS[:draft]
или Post::STATUS[:draft]
и т. Д.
Это работает нормально, но есть несколько вещей, которые мне не нравятся.
- Если у вас есть опечатка и вы вызываете что-то вроде
STATUS[:something_that_does_not_exist]
, она не выдаст ошибку, она просто вернет ноль и может в конечном итоге установить ее в базе данных и т. Д., Прежде чем вы заметите ошибку
- Писать что-то вроде
if some_var == Post::STATUS[:draft]
...
Я не знаю, что-то говорит мне, что есть лучший способ, но просто хотел посмотреть, что делают другие люди. Спасибо!