flu*_*aas 8 ruby-on-rails aasm ruby-on-rails-3
我想知道你们如何在控制器中使用工作流程或AASM gem,如果你想更新所有属性,还需要工作流程/ AASM回调才能正常启动.
目前,我使用它像这样:
class ModelController < ApplicationController
def update
@model = model.find(params[:id])
if params[:application]['state'].present?
if params[:application]['state'] == "published"
@model.publish!
end
end
if @model.update_attributes(params[:application]); ... end
end
end
Run Code Online (Sandbox Code Playgroud)
感觉不对,什么是更好的解决方案?
小智 0
这是一件小事,但如果该东西不存在,则哈希返回 nil,因此您可以删除对 Present 的调用吗?
当然,我知道这不是你要问的。一种替代方法是在模型中放置一个 before 过滤器,并在那里检查状态。这会让你的控制器对你的状态的底层存储视而不见。
顺便说一句,我们在这里使用 AASM,我喜欢它:)
| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |