Ruby on rails 哪个Rails组件负责解析来自“date\u select”的输入?

Ruby on rails 哪个Rails组件负责解析来自“date\u select”的输入?,ruby-on-rails,Ruby On Rails,可以传递给模型实例。什么Rails组件处理将此输入转换为传递给setter的日期?负责处理日期的Ruby模块是ActiveSupport,具体来说,是内置于Ruby中的DateTime模块上的扩展 如果您特别询问HTML中的选择框,那将是ActionViewhelper方法,它为date\u select呈现一个选择框 希望这能回答您的问题。这些“多参数属性”(在Rails中称为)在属性分配期间,即在建模期间,转换回单个值。新的或模型。更新属性等方法调用 相关代码可在ActiveRecord的A

可以传递给模型实例。什么Rails组件处理将此输入转换为传递给setter的日期?

负责处理日期的Ruby模块是
ActiveSupport
,具体来说,是内置于Ruby中的
DateTime
模块上的扩展

如果您特别询问HTML中的选择框,那将是
ActionView
helper方法,它为
date\u select
呈现一个选择框

希望这能回答您的问题。

这些“多参数属性”(在Rails中称为)在属性分配期间,即在
建模期间,转换回单个值。新的
模型。更新属性
等方法调用

相关代码可在
ActiveRecord
AttributeAssignment
模块中的中找到。从其文档字符串中引用:

为需要多个构造函数参数的所有属性类实例化对象。这是通过使用这些参数对列类型或聚合类型(通过组合)对象调用
new
来实现的

因此,让这对
writed\u on(1)=“2004”
writed\u on(2)=“6”
writed\u on(3)=“24”
,将
writed\u on
(日期类型)实例化为
date.new(“2004”,“6”,“24”)

您还可以在括号中指定类型转换字符,以便在构造函数中使用参数之前对其进行类型转换。使用
i
表示
Fixnum
f
表示
Float
。如果给定属性的所有值均为空,则该属性将设置为
nil

<%= date_select :person, :birth_date %>
{'person' => {'birth_date(1i)' => '2008', 'birth_date(2i)' => '11', 'birth_date(3i)' => '22'}}