Rails表单帮助程序选择方法参数



我想知道为什么在Rails中的select的以下表单helper中有一个额外的参数{}

<%= f.select :genre_ids,
          @genres.map { |g| [g.name, g.id] }, {}, { multiple: true } %>

我阅读了一些关于select helper的文档,了解到第二个参数@genres.map { |g| [g.name, g.id] }返回了select方法期望的选项的格式。但我找不到任何一个例子,其中有一个空白哈希作为第三个参数,如图所示。

将空哈希作为第三个参数的原因是因为第四个参数的哈希中有一个值。

select的第三个和第四个参数都默认为空散列(根据select的文档),但当您设置第四个(或第N个)参数时,其中N-1参数是在被调用的方法中隐式设置的,您必须显式设置第三个(或N-1)参数。

tl;dr-根据文档,如果不明确声明空哈希为第三个参数,{ multiple: true }将作为第三个自变量传递,第四个自变量将是隐含的空哈希。

最新更新