某个支付接口 API 要求提交的数值是以「分」为单位的,比方说要支付 10 块钱,提交的数值得是 1000 。
但是我显然不能在网页上叫用户输入 1000 吧……
现在我在 controller 里面用这样的方式:
def process_payment @card_transaction_details = CardTransactionDetails.new(card_transaction_details_params) @card_transaction_details.amount = (@card_transaction_details.amount.to_i * 100).to_s... # 如果表单没填对 flash.now[:error] = MESSAGE_INVALID_DETAILS render '填表页'end
这样支付成功的话没有问题,但是如果表单有问题的话,重新 render 填表页的时候,付款数值那个 field 就会出问题。
比方说还是要支付 10 块钱,数值 field 填 10 ,然后填表的时候忘了填地址,重新 render 这一页的时候,那个 field 里面就会自动填上 1000 ,这很危险。
请问正确的 practice 应该是什么啊,thx。
原文地址:Rails 中如何修改用户提交的数据?, 感谢原作者分享。 最快乐的时候,就是去旅行。