【问题标题】:Why do rails jobs (ApplicationJob) use splat operator?为什么rails作业(ApplicationJob)使用splat运算符?
【发布时间】:2020-10-22 08:34:03
【问题描述】:

我使用 rails 生成器创建了我的第一份工作:

rails g job do_something

创建了作业文件:

class DoSomethingJob < ApplicationJob
  queue_as :default

  def perform(*args)
    # Do something later
  end
end

splat 运算符对我来说是新的(我知道它可以用来传递多个参数,并将它们分组到一个数组中)。 我的问题是,为什么作业默认带有 splat 运算符 - def perform(*args)?我的诱惑是简单地删除默认的*args,但我担心我可能会遗漏一些东西。

删除默认的*args 并像其他方法一样创建参数有什么问题吗?还是我需要对所有作业都使用 splat 运算符?

任何和所有帮助表示赞赏!

【问题讨论】:

    标签: ruby-on-rails rails-activejob splat


    【解决方案1】:

    perform 方法的构造及其使用完全取决于您;如果您删除 splat 运算符,您将不会错过任何事情,调用作业不会传递隐式参数或您应该使用 args.last 或类似的东西处理的任何内容。

    无论如何,splat 运算符只为您提供与任何 ruby​​ 方法相同的多功能性,并且 rails 将其用作占位符。

    【讨论】:

      猜你喜欢
      • 2013-08-19
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 2017-11-17
      相关资源
      最近更新 更多