更改条带参数键以在Rails中进行质量分配

时间:2017-03-29 20:17:42

标签: ruby-on-rails ruby stripe-payments

我正在将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方式”?

1 个答案:

答案 0 :(得分:3)

有多种方法可以做到这一点,但我喜欢像这样进行映射:

def order_params
  {
    shipping_zip: params[:stripeShippingAddressZip],
    # more here
  }
end

在此之后你可以这样做:

Orders.create(order_params)

我希望这有帮助!