Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 根据Rails 3.2.13数据库迁移中模型中另一个字段的值向列添加默认值_Ruby On Rails_Database Migration_Postgresql 9.2_Rails Postgresql - Fatal编程技术网

Ruby on rails 根据Rails 3.2.13数据库迁移中模型中另一个字段的值向列添加默认值

Ruby on rails 根据Rails 3.2.13数据库迁移中模型中另一个字段的值向列添加默认值,ruby-on-rails,database-migration,postgresql-9.2,rails-postgresql,Ruby On Rails,Database Migration,Postgresql 9.2,Rails Postgresql,我的模型中已经有一个日期字段(字符串)。我计划添加其他具有不同长日期格式的字符串字段,以便在与现有日期字段相关的文本搜索中使用。这是为了方便视觉受损者进行文本搜索 我以前做过类似的事情,效果很好 add_column :media_libraries, :media_year, :string, default: Time.now.year 但是,我要做的是添加日期字段,并使用现有日期字段的值默认新的日期字段 在我的一个视图中有下面的代码,其中有一个字段我想用来初始化新的长日期字段的值 med

我的模型中已经有一个日期字段(字符串)。我计划添加其他具有不同长日期格式的字符串字段,以便在与现有日期字段相关的文本搜索中使用。这是为了方便视觉受损者进行文本搜索

我以前做过类似的事情,效果很好

add_column :media_libraries, :media_year, :string, default: Time.now.year
但是,我要做的是添加日期字段,并使用现有日期字段的值默认新的日期字段

在我的一个视图中有下面的代码,其中有一个字段我想用来初始化新的长日期字段的值

media_created.to_date
我可以在迁移中执行类似的操作,根据记录上另一个字段的值设置默认值吗

add_column :media_libraries, :media_created_en, :string, default: :media_created.to_date.strftime("somedateformat")
我读过另一篇文章,其中一个答案建议在迁移过程中进行查询。这将是我实现这一目标的尝试。然而,在堆栈溢出上发布的其他人认为在迁移中引用其他字段不是一个好主意。对我来说,因为这是一次性的事情,我不担心这些问题

MediaLibrary.update_all(media_created_en: :media_created.to_date.strftime("%B %d, %Y"), media_created_fr: :media_created.to_date.strftime("%d %B %Y"), media_created_pt: :media_created.to_date.strftime("%d %B %Y"), media_created_es: :media_created.to_date.strftime("%d de %B de %Y"))
我想对现有记录执行此操作,因为我有1000多条记录要更新。我将在我的模型或控制器中输入代码,为模型的未来更新设置字段

我到处都找过了,但只能找到默认使用的内置函数或上面的一个示例。API只说了“选项{}”。如果不能做到这一点,我准备在我的应用程序的管理部分写一个方法来做这一次


任何帮助都将不胜感激。我会继续搜索。

我一直在搜索,但什么也没找到,所以我决定在迁移过程中尝试一些东西。我无法成功地将模型上的字段合并到默认值中。由于时间紧迫,我决定只在迁移中创建字段,然后在控制器中编写一个方法来更新模型中的字段。现在,我将编写代码来更新要添加的记录的字段,以确保字段正确更新

如果有人对此有一个解决方案,请张贴在这里,但我会继续