應用程序的用戶必須激活那裏的帳戶才能編輯或刪除條目。如果帳戶處於活動狀態,Rails將驗證狀態
如何將狀態從非活動狀態設置爲活動狀態? 我使用pluginaweek的state_machine來設置狀態。
state_machine initial: :inactive do
event :activate do
state = 'active'
end
end
我的控制器被稱爲activate-action將通過電子郵件發送給用戶。
def activate
@entry = Entry.find([:id])
if (check_email_link(@entry.exp_date))
if @entry.save
flash[:notice] = t("activate")
redirect_to @entry
else
flash[:error] = t("already_activated")
redirect_to @entry
end
else
flash[:error] = t("timeout")
redirect_to @entry.new
end
末 的文件說,我可以通過entry.state設置城市城市,但rhis將無法正常工作。
爲什麼該條目未激活?每個人都能幫助我嗎?
你有閱讀['state_machine'](文檔https://github.com/pluginaweek/ state_machine)? –
是的,這是問題所在。文件說,條目。狀態我可以設置狀態。但這不起作用 – amarradi
是否有任何操作錯誤日誌?或者在rails控制檯中嘗試使用該方法'@user.activate'並檢查它是否工作或任何錯誤。我已經使用[state_machine](https://github.com/pluginaweek/state_machine)並遇見問題[#261](https://github.com/pluginaweek/state_machine/issues/261)和[#334]( https://github.com/pluginaweek/state_machine/issues/334)。解決方案是改變寶石,使用[state_machines-activerecord](https://github.com/state-machines/state_machines-activerecord)來代替。 – gaga5lala