Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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 更新当前生产岗位';s目标用户id_Ruby On Rails_Ruby_Ruby On Rails 4_Polymorphic Associations_Production Environment - Fatal编程技术网

Ruby on rails 更新当前生产岗位';s目标用户id

Ruby on rails 更新当前生产岗位';s目标用户id,ruby-on-rails,ruby,ruby-on-rails-4,polymorphic-associations,production-environment,Ruby On Rails,Ruby,Ruby On Rails 4,Polymorphic Associations,Production Environment,我有两个表,其中一个表已更改为具有多态关联。我有一个大约40个帖子的生产环境,我想更改他们的targetable\u id和targetable\u类型,但我在CL中遇到了以下问题: Design.first.update_attributes(targetable_id: 1, targetable_type: "Collection") -->false 在本例中,前一种查找设计的方法是使用集合\u id,现在改为目标\u id。此特定设计上的集合ID为1 如何在不删除所有帖子并重新

我有两个表,其中一个表已更改为具有多态关联。我有一个大约40个帖子的生产环境,我想更改他们的
targetable\u id
targetable\u类型
,但我在CL中遇到了以下问题:

Design.first.update_attributes(targetable_id: 1, targetable_type: "Collection")
-->false
在本例中,前一种查找设计的方法是使用
集合\u id
,现在改为
目标\u id
。此特定设计上的集合ID为
1


如何在不删除所有帖子并重新开始的情况下执行此操作?

您可以尝试使用
update\u columns
直接更新数据库,而无需执行任何回调或验证:

Design.first.update\u列(targetable\u id:1,targetable\u type:“Collection”)

然而,如果是我,我会试图弄清楚它失败的确切原因。。。如果您尝试:

Design.first.update\u属性!(targetable_id:1,targetable_type:“Collection”)


。。。控制台应该为您提供有关失败原因的其他信息,这可能有助于您运行
update_attributes

您可以尝试Design.first.targetable=Collection.find(1)有没有办法做到这一点,但可以像Design一样一次更新多个。find(14)到40???当然,您可以将其放入迭代器中
Design.where(:id=>14..40)。每个{Design{Design.update_columns(…)}
没问题-很高兴提供帮助!