Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据提供的参数进行Ruby函数调用_Ruby - Fatal编程技术网

根据提供的参数进行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)