в настоящее время я использую константы для таких вещей, как * task_type *:
class TaskType
TWITTER_MENTION_REPLY = "twitter_mention_reply"
TWITTER_FOLLOW = "twitter_follow"
TWITTER_DM_REPLY = "twitter_dm_reply"
TWITTER_RETWEET = "twitter_retweet"
end
, поэтому, когда я инициализирую новую задачу, я назначаю тип следующим образом:
new_task.task_type = TaskType::TWITTER_MENTION_REPLY
преимущество этогоПодход заключается в том, что в случае, если константа введена неправильно, интерпретатор выдает ошибку.Недостатком является то, что сравнение строк стоит дорого, символы гораздо лучше для этого.Итак, вопрос в том, как объединить эти два преимущества?
Я попытался создать следующий класс:
class TaskType
TWITTER_MENTION_REPLY = :twitter_mention_reply
end
, но проблема с ним заключалась в том, что при сохранении его в БД сохраненныеполе выглядит так: -: twitter_mention_reply