我有一個使用User
模型和Venue
模型的Rails 3.1應用程序。這兩種模式具有HABTM的關係 - 用戶可以管理許多場地,場地可以由許多用戶管理。Rails遷移假設沒有關係
我希望用戶能夠選擇默認的場地,所以我想一個default_venue_id
屬性添加到User
與以下遷移:
class AddDefaultVenueIdToUser < ActiveRecord::Migration
def self.up
add_column :users, :default_venue_id, :integer
end
def self.down
remove_column :users, :default_venue_id
end
end
的問題是,當我運行遷移對我的PostgreSQL數據庫,它假設default_venue_id
是與不存在的default_venues
表關係的外鍵,引發以下錯誤:
PGError: ERROR: relation "default_venues" does not exist
: ALTER TABLE "users" ADD FOREIGN KEY ("default_venue_id") REFERENCES "default_venues" ("id")
我應該是否正在做一些事情來告訴數據庫我沒有試圖建立一種關係,或者我會以錯誤的方式去做這件事?
編輯:我剛剛意識到,誰該項目的工作另一家開發商加入schema_plus寶石自動定義了_id
這就是爲什麼我從來沒有碰到這種行爲之前結束列約束!
你說得對,有很多通過會更適合在這種情況下。謝謝! – Simon 2012-03-23 15:31:18