Я - Rails n00b, и мне сообщили, что для того, чтобы я мог отслеживать состояние учетных записей моего пользователя (то есть платных, неоплаченных (и, следовательно, отключенных), бесплатной пробной версии и т. Д.), Я должен использовать AASM 'драгоценный камень.
Итак, я нашел тот, который кажется наиболее популярным: https://github.com/rubyist/aasm Но инструкции довольно расплывчаты.
У меня есть модель Users и модель Plan. Модель пользователя управляет всем, что вы можете ожидать (имя пользователя, пароль, имя и т. Д.). Модель плана управляет планом подписки, которому должны быть назначены пользователи (с ограничениями).
Поэтому я пытаюсь понять, как использовать гем AASM, чтобы делать то, что я хочу, но не знаю, с чего начать.
Создать новую модель? Затем я устанавливаю связь между моей моделью пользователя и моделью для AASM? Как мне установить отношения? Как, например, пользователь has_many заявляет? Мне кажется, это не имеет особого смысла.
Любое руководство будет очень цениться.
Спасибо.
Редактировать: Если кто-то еще смущен такими AASM, как я, вот хорошее объяснение их функции в Rails замечательными людьми из Envy Labs: http://blog.envylabs.com/2009/08/the-rails-state-machine/
Edit2: Как это выглядит:
include AASM
aasm_column :current_state
aasm_state :paid
aasm_state :free_trial
aasm_state :disabled #this is for accounts that have exceed free trial and have not paid
#aasm_state :free_acct
aasm_event :pay do
transitions :to => :paid, :from => [:free_trial, :disabled]
transitions :to => :disabled, :from => [:free_trial, :paid]
end