for_commit for rails controller
我知道在Rails 3中为ActiveRecord对象提供了一个
after_commit
回调。但是,我想在Rails控制器中访问这个功能。
目的是在控制器中做这样的事情:
rescue_from AccountError, :with => :render_internal_error
after_commit :render_created, :on => :create
def create
Account.transaction do
modify_underlying_system
@account.save!
end
end
protected
def render_created
render :status => 201, :json => {...}
end
def render_internal_error
render :status => 500, :json => {...}
end
有什么方法可以实现这个吗?我不想使用ActiveRecordafter_commit
回调,因为它意味着通过让模型进行渲染来打破模型和控制器之间的分离,这是它不应该做的事情。
没有找到相关结果
已邀请:
1 个回复
惭法搽
我没有测试它,但看起来很正确。