我有一個擁有許多客戶的用戶模型。用戶模型具有整數屬性eft_percent,並且客戶具有布爾屬性eft。我需要用戶eft_percent屬性在創建此用戶的客戶時進行更新。這裏是我的代碼現在:Rails從不同模型更新一個模型屬性創建動作
after_action :calculate_eft, only: [:create]
def create
@customer = Customer.new(customer_params)
if @customer.save
flash[:notice] = 'Customer created'
redirect_to customers_url
else
flash[:alert] = 'Error creating customer'
redirect_to new_customer_url
end
end
private
def calculate_eft
@user = User.find(@customer.user_id)
@user.eft_percent = @user.customers.where(eft: true).count * 100/@user.customers.count
@user.save
end
當我創建一個客戶的用戶eft_percent屬性沒有改變。所有幫助表示讚賞!
你不應該叫@ user.save在calculate_eft最後一行堅持新值到數據庫? – cristian
我試過它不起作用(我想我在帖子中提到過)。我想知道如果我需要做update_attributes什麼的。 –
如果您打印來自'@ user.customers.where(eft:true).count * 100/@ user.customers.count'的值,您會得到corect結果嗎? – cristian