1

想要进行 rails 迁移,但我希望列名类似于 external_id 但我不想使用 external 的任何模型。我认为默认情况下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 正在寻找外键引用,有什么方法可以抑制外键引用。我正在使用导轨 2.3.5

4

3 回答 3

0

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

于 2013-03-12T18:26:04.070 回答
0

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

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

于 2013-03-12T18:50:49.050 回答
0

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

于 2013-03-12T18:28:09.490 回答