我想知道为什么在Rails中{}
的以下形式帮助器中有一个额外的参数select
。
<%= f.select :genre_ids,
@genres.map { |g| [g.name, g.id] }, {}, { multiple: true } %>
我在select helper上阅读了一些文档,并了解第二个参数@genres.map { |g| [g.name, g.id] }
返回select
方法期望选择的格式。但我找不到任何例子,其中有一个空白哈希作为第三个参数,如此处所示。
答案 0 :(得分:1)
将空哈希作为第三个参数的原因是因为第四个参数的哈希值中有一个值。
select
的第三个和第四个参数都默认为空哈希(per the documentation for select)但是当你设置第四个(或第N个)参数时,在被调用的方法中隐式设置N-1参数,你必须明确设置第三个(或N-1)参数。
tl; dr - 如果你没有明确地声明空哈希作为第三个参数,{ multiple: true }
将作为第三个参数传递,第四个参数将是默认的空哈希,按照文档。< / p>