gpt4 book ai didi

ruby-on-rails - Rails 迁移 : self. up 和 self.down 与更改

转载 作者:行者123 更新时间:2023-12-03 05:09:48 24 4
gpt4 key购买 nike

看起来新的 Rails 版本与 self.up 和 self.down 方法相比有“变化”。

那么当必须回滚迁移时会发生什么,它如何知道要执行哪些操作。我需要根据在线教程实现以下方法:

class AddImageToUsers < ActiveRecord::Migration
def self.up
add_column :users, :image_file_name, :string
add_column :users, :image_content_type, :string
add_column :users, :image_file_size, :integer
add_column :users, :image_updated_at, :datetime
end

def self.down
remove_column :users, :image_file_name, :string
remove_column :users, :image_content_type, :string
remove_column :users, :image_file_size, :integer
remove_column :users, :image_updated_at, :datetime
end
end

如何使用新的更改方法执行相同的操作?

最佳答案

对于许多操作rails 可以猜测什么是逆操作(没有问题)。例如,在您的情况下,回滚时要调用的 add_column 的反向操作是什么?当然是remove_columncreate_table 的逆是什么?它是drop_table。因此,在这些情况下,rails 知道如何回滚并定义 down 方法是多余的(您可以在文档中看到 methods currently supported from the change method )。

但请注意,对于某些类型的操作,您仍然需要定义 down 方法,例如,如果更改小数列的精度,如何猜测回滚时的原始精度?这是不可能的,所以你需要定义 down 方法。

如上所述,我建议您阅读 Rails Migrations Guide .

关于ruby-on-rails - Rails 迁移 : self. up 和 self.down 与更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com