Я - Rails n00b, и мне сообщили, что для отслеживания состояния учетных записей моего пользователя (например, оплаченного, неоплаченного (и, следовательно, отключенного)), бесплатной пробной версии и т. Д.). Я должен использовать AASM, драгоценный камень.Как реализовать aasm в Rails 3 для чего я хочу?
Так что я нашел тот, который кажется самым популярным: https://github.com/rubyist/aasm Но инструкции довольно расплывчаты.
У меня есть модель пользователей и модель плана. Модель пользователя управляет всем, что вы можете ожидать (имя пользователя, пароль, имя и т. Д.). Модель плана управляет планом подписки, которому должны быть назначены пользователи (с ограничениями).
Так что я пытаюсь выяснить, как использовать драгоценный камень AASM, чтобы делать то, что я хочу делать, но не знаю, с чего начать.
Создать новую модель? Затем установите связь между моей моделью пользователя и моделью для AASM? Как настроить отношения? Как и в случае с пользователем 'has_many'? Для меня это не имеет большого значения.
Любое руководство будет действительно оценено.
Спасибо.
Edit: Если кто-то смущен AASMs, как я, вот это хорошее объяснение их функции в 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
Ссылка на envylabs больше не работает. Вот рабочая ссылка для этого blogpost: http://madewithenvy.com/ecosystem/articles/2009/rails-state-machine/ –