红宝石条纹
我正在尝试与 Ruby Stripe 库进行交互,特别是使用这里记录的 subscription_update 函数:https ://stripe.com/docs/api#update_subscription
这是语法的样子:
c = Stripe::Customer.retrieve("cus_2BWdBuTAE3HboP")
c.update_subscription(:plan => "basic", :prorate => true)
实现 Rails 模型
我正在实现一个可以与 ruby 库交互的 rails 模型。由于此 api 将使用 nil 值更新我的订阅(这将覆盖默认值),因此我需要一个函数来抓取可写属性并创建一个仅包含非 nil 属性的数组,我可以将其传递给此 update_subscription 函数。
这是我现在拥有的:
def get_non_nil_update_attributes
attributes = Array.new([ :plan, :trial_end, :quantity, :coupon, :prorate ])
return_attributes = {}
attributes.each do |attribute|
if !self.send( attribute ).nil?
return_attributes[attribute] = self.send( attribute)
end
end
return return_attributes
end
我只想这样称呼:
c.update_subscription( mymodel.get_non_nil_update_attributes )
但是我收到一个错误,我没有传入计划参数。如果这个函数是,在控制台我的输出:
[{:plan=>"7"}, {:trial_end=>"bla"}]
我知道这只是一个简单的红宝石问题,但我如何使这个输出只是
:plan => "7", :trial_end => "bla"
为了传递给我的函数?