ルビーストライプ
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 値で更新するため (デフォルトを上書きします)、書き込み可能な属性をクロールし、この update_subscription 関数に渡すことができる nil 以外の属性のみの配列を作成する関数が必要です。
これが私が今持っているものです:
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"
、関数に渡すためだけにこの出力を作成するにはどうすればよいですか?