简体   繁体   English

重构Rails控制器代码

[英]Refactor rails controller code

I was tring to reduce duplicatie code in my Rails project. 我试图减少Rails项目中的重复代码。

def update_receipt
  user = current_user
  Receipt.update(user.receipt.id, name: params[:name].to_s, phone_number: params[:phone_number].to_s, address: params[:address].to_s, receipt_type: params[:receipt_type].to_i)
  Receipt.update(user.receipt.id, name: params[:name].to_s, phone_number: params[:phone_number].to_s, address: params[:address].to_s, receipt_type: params[:receipt_type].to_i, tax_number: params[:tax_number].to_i) if params[:receipt_type].to_i == 2 
end

Is there a better way to refactor the above codes? 有没有更好的方法来重构上述代码?

Updated answer: 更新的答案:

def update_receipt
  attrs = params.slice(:phone_number, :address, :receipt_type)
  attrs[:tax_number] = params[:tax_number] if attrs[:receipt_type].to_i == 2
  Receipt.update(user.receipt.id, attrs)
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM