Rails: как представить доступные действия вида в модели с состоянием? - PullRequest
0 голосов
/ 24 мая 2010

У меня есть модель с состоянием. В каждом состоянии есть выбор действий, которые пользователь может захотеть выполнить с экземпляром модели. В настоящее время я преобразую состояние модели в действия, которые представляются в виде с помощью помощника вида.

Как то так ... в модели:

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, которая подходит для такой ситуации лучше, чем мой подход? Должно ли каждое государство быть отдельной моделью?

1 Ответ

1 голос
/ 24 мая 2010

Я всегда использую aasm , который автоматически предоставляет вам эти state_is_A? методы, а также SomeModel.states и информацию о доступных переходах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...