2010-10-17 56 views
1

我正在使用RadRails來創建我的MYSQL數據庫表。這是遷移任務:Ruby on Rails不正確的主鍵名稱

class CreateEvents < ActiveRecord::Migration 
    def self.up 
    create_table :events do |t| 
     t.string :eventname 
     t.string :evententryurl 
     t.string :eventurl 

     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :events 
    end 
end 

然後我運行db:migrate Rake任務。這會在數據庫表中創建以下字段:

id 
eventname 
evententryurl 
eventurl 

好吧,到目前爲止。我遇到的問題是當我運行應用程序並轉到http://localhost/events/new時,應用程序正在尋找eventid,因爲它是主鍵,而不是id。如何更改我的遷移任務,以便自動將eventid作爲主鍵放入數據庫中?

+0

顯示同一張表的模型示例。 – 2011-01-12 23:33:33

回答

1

聽起來就像您試圖在eventid的遷移中覆蓋默認主鍵名id。我假設應用程序正在尋找eventid而不是id,因爲您在模型中使用了set_primary_key :eventid

這裏有您需要什麼:

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table

:primary_key主 鍵的名稱,如果是自動添加 。默認爲id。如果:id 爲false,則忽略此選項。

另請注意,這只是在表中設置 主鍵。您還需要通過 set_primary_key宏在模型中配置主密鑰 。型號不是 自動檢測表格定義中的主鍵。