我在开发环境中使用SQlite,在生产环境中使用Postgre。
在开发过程中一切都很好。但是,当我尝试重置和迁移生产数据库时,收到了以下消息:

PG::UndefinedTable: ERROR:  relation "priceranges" does not exist
...
FOREIGN KEY ("pricerange_id")
REFERENCES "priceranges" ("id")

我的场地模型:
belongs_to :pricerange, :class_name => "PriceRange"

我的pricerange迁移:
class CreatePriceRanges< ActiveRecord::Migration[5.0]
  def change
   create_table :price_ranges do |t|
    t.string :price_description
    t.timestamps
   end
  end
end

有什么想法吗?

最佳答案

您在迁移中创建的表名是price_ranges,而不是priceranges。除非覆盖PriceRange模型中的表名,否则pricerange上的Venue关联将查找名为price_range_id的外键,而不是pricerange_id。我建议你坚持惯例,让你的协会:

belongs_to :price_range # automatically uses class PriceRange, and foreign key `price_range_id`

08-06 04:40