assets.rb 中用于预编译资产的行中的 += %w 是什么意思?

What does += %w mean in the line used to precompile assets in assets.rb?

我正在查看 Rails 5 应用程序中 /config/initializers/assets.rb 中的默认文件。

要预编译代码,Rails在注释中,给出一个预先存在的代码来一起预编译资产。

Rails.application.config.assets.precompile += %w( search.js )

我很好奇最后一部分是什么意思:+= %w( search.js ),因为我从未见过 Ruby 或 Rails 中使用的表达式 (+= %w)。我知道整行都在调用 Rails class,将一些方法链接在一起以创建最终输出。但我很好奇, += %w 做了什么,它如何影响我认为是论点的内容 (search.js)?

Rails.application.config.assets.precompile += %w( search.js )

等于做

Rails.application.config.assets.precompile = Rails.application.config.assets.precompile + ['search.js']

将其分解,+= 只是用于在语句中包含左侧的常规运算符。喜欢

i = 0
i += 1 # i = i + 1

%w 使您能够创建这样的数组

%w(search.js profile.js error.js)

shorthand

很不错
['search.js', 'profile.js', 'error.js']