Если тебе нужно хранить историю изменения статусов и возможность откатывать их назад - то стоит делать отдельную таблицу. Если нет - то просто поле в таблице с задачами. Историю приоритетов хранить вряд ли нужно т.ч. можно сразу делать поле в задачах.
class Status
belongs_to :task
из курса по реляционным базам в университете помню, что данные не должны повторяться, нормализация, все дела,
Если статус belongs_to :task - то это озаначает, что под каждую задачу будет запись с таблице статусов, в которой еще и значение этого статуса нужно будет хранить.
Для нормализации можно сделать 3 таблицы - в одной статусы, в другой задачи, а в третьей указывать какие статусы каким задачам принадлежат. Ну еще и время можно для истории.
Но такое стоит делать, если подразумевается возможность создания произвольных статусов пользователями приложении. Если же нет и никакой истории хранить не надо, то делай просто поле в таблице с задачами.