我有一个由很长的表格填充的 rails 模型(使用 wicked-wizard gem 拆分)。
有一些验证,但我允许在大多数字段中留空。
如果模型已保存但某些字段保持空白(例如记住用户填写表单),我需要采取某些操作,如果表单 100% 完成,我需要采取一些其他操作(例如向用户发送电子邮件让他知道表格是完整的)。
我的想法是触发一个虚拟属性,例如 :complete 如果我的模型中没有空白字段,但我不确定如何以及在哪里执行此操作。
有什么提示吗?
========================== 编辑
感谢@Kzu 的建议,我发现这可以在我的向导控制器上工作(但也可以在对象控制器本身上工作)
def update
@customer = current_user.customer
params[:customer][:complete] = @customer.attributes.select{|key,value| value.nil? or !value.present? }.any? ? false : true
@customer.attributes = params[:customer]
render_wizard @customer
end