2
我有一個很長的窗體填充的軌道模型(使用邪惡嚮導寶石分割)。如何在表單完成時觸發「已完成」屬性?
有一些驗證,但我允許在大多數領域空白。
我需要採取某些措施,如果保存模型但某些字段保持空白(例如記住用戶完成表單)以及其他一些操作,如果表單100%完成(例如向用戶發送電子郵件讓他知道表格是完整的)。
我的想法是觸發一個虛擬屬性,如:完成如果我的模型中沒有空白字段,但我不知道如何以及在哪裏做到這一點。
任何提示?
========================= 編輯
感謝@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
由於某種原因,將它放入before_save中會阻止我的嚮導進入下一步。如果你看看我的編輯,我使它在控制器中工作,並做了一些小的調整。我使用| value.present,因爲value.blank在false布爾值上返回true,所以完整屬性本身會阻止它自己工作。我還加了.any?否則空數組返回true。感謝您的幫助! – TopperH