我的授权模式中有这个:
after_save :generate_charged, :if => :authorization?
我需要执行这个方法:只有在授权是由模型授权创建的时才生成generate_charged,因为在我的代码中,我还有Refinancings,它也创建了授权。
在我的authorization_model中有:
def authorization?
# If create from Authorization == true
# My routes /authorization can serve for something?
end
答案 0 :(得分:1)
您可以将此逻辑放在after_save
:
authorization_controller
。
def create
attrs = { your form attrs }
if @authorization.update_attributes(attrs)
@authorization.generate_charged
# then, redirect
else
render "new"
end
end
然后,当然,在您的Refinancings控制器中,不要调用该方法。
有一些方法可以在保存之后执行此操作(即设置一个无关的变量以在模型中进行检查),但可能对您的情况有些过分。即使这样,您也可以在控制器中使用代码来实现此目的。因此,我认为绕过这一切是最短路径。