Ruby迁移文件

在我的网络应用程序上,我有一天,一个月,一年下拉框。 我在我的控制器中有一个临时渲染,以查看发送到数据库的内容,因此我知道要迁移的内容。 但是,日,月,年字段在下面发送。 但Rails生成模型不喜欢括号。 你是怎么过来的? 任何帮助将非常感谢。

"date(3i)"=>"18", "date(2i)"=>"4", "date(1i)"=>"2014" def change create_table :posts do |t| t.text :title t.text :requester t.text :requester_email t.text :customer t.text :contact t.text :customer_email t.text :customer_phone t.string :type_of_change t.string :date(3i) t.timestamps 

这应该只是一个名为date的字段,类型为date。

(3i)业务归功于rails的多参数分配系统。 您在模型中有一个值(日期),但操纵它们的UI会将其分解为年/月/日。

每个年/月/日参数都与日期有关,后缀表示哪个参数是哪个。 当参数如

 "date(3i)"=>"18", "date(2i)"=>"4", "date(1i)"=>"2014" 

被分配给日期属性,rails知道使用Date::civil来创建日期。 (1i)后缀告诉rails将类型’2014’转换为整数并将其用作Date::civil的第一个参数等等