在表单助手中传递选项是否需要显式哈希?

Is an explicit hash required to pass in options in form helpers?

docs for text_field 显示其用法如下:

text_field(object_name, method, options = {})

但在示例中没有明确声明散列:

text_field(:post, :title,  maxlength: 30, class: "title_input")

这是如何工作的?

rails是否认识到开发人员可能只意味着一件事(第二个元素以外的所有内容都必须属于散列)?还是有其他事情发生?

这是选项散列的示例。这是语言的一个特点。 Ruby 本身允许您使用选项散列定义方法,并且在前两个必需参数(object_namemethod)之后它将读取任何其他参数作为选项散列的一部分,如只要您使用正确的哈希语法 (key: value).

散列本身提供了灵活性,因此您可以添加 HTML 字段将接受的任何内容:idclassdata- 元素等。