我正在将Stripe集成到Rails应用程序中。现在Stripe Checkout返回带有键值对的params散列,如:
"stripeShippingAddressZip"=>"80205"
和
"stripeShippingAddressState"=>"CO"
我还有一个名为order_params
的方法,它调用params.permit
来防止质量分配漏洞。
我想做以下事情:
current_user.orders.build(order_params)
基本上是质量分配。
但是,我的orders
模型具有shipping_zip
而非stripeShippingAddressZip
等属性。
如果散列键与模型的属性不匹配,我如何使用params散列并仍然进行质量分配?
这样做是否有“Rails方式”?
答案 0 :(得分:3)
有多种方法可以做到这一点,但我喜欢像这样进行映射:
def order_params
{
shipping_zip: params[:stripeShippingAddressZip],
# more here
}
end
在此之后你可以这样做:
Orders.create(order_params)
我希望这有帮助!