【发布时间】:2017-08-16 08:52:26
【问题描述】:
所以我一直在阅读 Traiblazer 和 Reform 文档,我经常看到这种代码
class AlbumForm < Reform::Form
collection :songs, populate_if_empty: :populate_songs! do
property :name
end
def populate_songs!(fragment:, **)
Song.find_by(name: fragment["name"]) or Song.new
end
end
注意到def populate_songs!(fragment:, **) 的定义了吗?
我很清楚捕获所有其他关键字参数的双 splat 命名参数(如**others)。但是我从来没有见过**一个人,没有名字。
所以我的两个问题是:
- 上面块中的**是什么意思?
- 为什么要使用这种语法?
【问题讨论】:
标签: ruby-on-rails ruby reform trailblazer