rails迁移列名称带有_id后缀

时间:2013-03-12 18:23:37

标签: ruby-on-rails ruby rails-migrations

想要进行rails迁移,但我希望列名称类似于external_id,但我不希望任何带外部的模型。我认为默认情况下使用rails,只要将_id视为后缀,它就会查找外键关联,如果不存在,则会取消迁移。 什么是解决方案。我有

def self.up
    create_table :external_mappings do |t|
      t.string :external_name
      t.integer :external_id

      t.timestamps
    end
  end

感谢您的帮助


当我把它变成t.integer:externalId迁移工作。这让我觉得external_id正在寻找foreiegn的关键参考,有什么方法可以抑制foriegn的关键参考。我正在使用rails 2.3.5

3 个答案:

答案 0 :(得分:0)

您可以在不使用_id的情况下为任何列提供_id名称和引用外键,因此请随时继续。这只是一个Rails依赖的约定model-name_id的约定,但没有问题,它可以用不同的方式定义。

答案 1 :(得分:0)

不,由于不存在的模型,rails不会取消任何迁移。

答案 2 :(得分:0)

我想知道原始海报是否使用脚手架和“引用”类型创建了新模型。如果是这种情况,迁移在尝试创建外键期间将失败。

否则,如果它只是一个整数,那么将_id添加到其他可接受的列名的末尾没有任何问题。