У меня есть модель с состоянием. В каждом состоянии есть выбор действий, которые пользователь может захотеть выполнить с экземпляром модели. В настоящее время я преобразую состояние модели в действия, которые представляются в виде с помощью помощника вида.
Как то так ... в модели:
Class Thing
def state_is_A?
state == 'A'
end
end
В помощнике:
def display_available_actions(thing)
if thing.state_is_A?
link_to <action1>
link_to <action2>
end
end
А в представлении:
<%= display_available_actions(@thing) %>
Мне не нравится тот факт, что состояние модели переводится в действия представления в помощнике. Я хотел бы, чтобы это было включено в модель. С другой стороны, модели и представлению нехорошо соединяться.
Существует ли идиома Ruby или Rails, которая подходит для такой ситуации лучше, чем мой подход? Должно ли каждое государство быть отдельной моделью?