【问题标题】:rails migration columns name with _id suffix带有 _id 后缀的 rails 迁移列名称
【发布时间】:2013-03-12 18:23:37
【问题描述】:

想要进行 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 正在寻找外键引用,有什么方法可以抑制外键引用。我正在使用 Rails 2.3.5

【问题讨论】:

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


    【解决方案1】:

    您可以为任何列指定 _id 名称并引用不带 _id 的外键,因此请随时继续。这只是 Rails 依赖于以model-name_id 为目标的约定,但可以毫无问题地对其进行不同的定义。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 当我做 t.integer :external_id
      【解决方案3】:

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

      否则,如果它只是一个整数,那么在其他可接受的列名末尾添加 _id 并没有错。

      【讨论】:

        猜你喜欢
        • 2019-07-26
        • 2012-10-18
        • 2011-02-25
        • 2023-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-02
        • 2021-12-06
        相关资源
        最近更新 更多