Ruby on rails 如何更新整个表列
我有一个Ruby on rails 如何更新整个表列,ruby-on-rails,ruby,database,Ruby On Rails,Ruby,Database,我有一个Micropost表,表中有user\u id和sender\u id(两个整数)列。我刚刚添加了sender\u id列,对于现有表行,默认情况下它的值为nil。作为一次性工作,我希望将所有user\u id值复制并粘贴到已存在行的sender\u id列中。需要某种类型的迁移?我本来可以在迁移中完成,但由于您已经运行了它,您可以直接在rails控制台中完成: Micropost.all.each do |m| m.update_attribute :sender_id, m.
Micropost
表,表中有user\u id
和sender\u id
(两个整数)列。我刚刚添加了sender\u id
列,对于现有表行,默认情况下它的值为nil。作为一次性工作,我希望将所有user\u id
值复制并粘贴到已存在行的sender\u id
列中。需要某种类型的迁移?我本来可以在迁移中完成,但由于您已经运行了它,您可以直接在rails控制台中完成:
Micropost.all.each do |m|
m.update_attribute :sender_id, m.user_id
end
我会在迁移过程中完成它,但由于您已经运行了它,您可以直接在rails控制台中完成:
Micropost.all.each do |m|
m.update_attribute :sender_id, m.user_id
end
如果是一次性的,我建议您运行sql命令来完成这项工作
update micropost set sender_id = user_id;
如果必须使用rails,请在console中运行以下行
ActiveRecord::Base.connection.execute "update micropost set sender_id = user_id"
如果是一次性的,我建议您运行sql命令来完成这项工作
update micropost set sender_id = user_id;
如果必须使用rails,请在console中运行以下行
ActiveRecord::Base.connection.execute "update micropost set sender_id = user_id"
您可以从rails控制台执行此操作
Micropost.update_all("sender_id = user_id")
您可以从rails控制台执行此操作
Micropost.update_all("sender_id = user_id")
我一直在为micropost class.Oops获取未定义的方法。缺少
.all
我一直在为microsoft class.Oops获取未定义的方法。缺少。所有