根据提供的参数进行Ruby函数调用
这段代码是关于获取事务的。 但是,如果根据提供的参数进行Ruby函数调用,ruby,Ruby,这段代码是关于获取事务的。 但是,如果from_when:''和to_when:''都是空的,我希望执行 results=Stripe::BalanceTransaction.all(限额:100,开始时间:开始时间) 如果两个都有,我愿意执行 results=Stripe::BalanceTransaction.all(限制:100,启动后:启动后,可用时:{gt:from\u when,lt:to\u when}) 我可以编写switch语句,或者if语句,但我觉得它根本没有效率。你知道其他
from_when:''和to_when:''
都是空的,我希望执行
results=Stripe::BalanceTransaction.all(限额:100,开始时间:开始时间)
如果两个都有,我愿意执行
results=Stripe::BalanceTransaction.all(限制:100,启动后:启动后,可用时:{gt:from\u when,lt:to\u when})
我可以编写switch语句,或者if语句,但我觉得它根本没有效率。你知道其他更好的方法来处理这种情况吗
编辑
如果一个是空的,一个是提供的呢 如果在提供以下内容时从_中选择
:,
Stripe::BalanceTransaction.all(限制:100,开始时间:开始时间之后,可用时间:{gt:from\u when})
应该执行,反之亦然。在您的情况下,类似的操作可能会奏效。
构建一个散列,其中包含要使用其调用方法的所有参数
def retrieve_transaction(from_when: '', to_when: '')
from_when = Time.parse(from_when).to_i
to_when = Time.parse(to_when).to_i
starting_after = nil
all_transaction = []
loop do
results = Stripe::BalanceTransaction.all(limit: 100, starting_after: starting_after, available_on: { gt: from_when, lt: to_when })
break if results.data.length == 0
all_transaction += results.data
starting_after = results.data.last.id
end
all_transaction
end
如果一个是空的,并且提供了一个呢?一种方法是将所有参数包装在一个函数中,该函数根据输入返回最佳参数<代码>条带::BalanceTransaction.all(build_参数(从_-when,到_-when))
当您有空字符串时,Time.parse(“”
将引发错误。在这种情况下,您到底想要什么?@sawa,因为它提供Unix时间戳。。
params = {
starting_after: starting_after
}
params[:available_on] = {
gt: from_when,
lt: to_when
} unless (from_when.empty? || to_when.empty?)
...
results = Stripe::BalanceTransaction.all(params)