想要进行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
答案 0 :(得分:0)
您可以在不使用_id
的情况下为任何列提供_id
名称和引用外键,因此请随时继续。这只是一个Rails依赖的约定model-name_id
的约定,但没有问题,它可以用不同的方式定义。
答案 1 :(得分:0)
不,由于不存在的模型,rails不会取消任何迁移。
答案 2 :(得分:0)
我想知道原始海报是否使用脚手架和“引用”类型创建了新模型。如果是这种情况,迁移在尝试创建外键期间将失败。
否则,如果它只是一个整数,那么将_id添加到其他可接受的列名的末尾没有任何问题。