2010-05-01 29 views
16

這是我原來的遷移:軌數據庫遷移,未定義的方法`to_sym」,不能找出語法

class CreateUsers < ActiveRecord::Migration 
    def self.up 
    ActiveRecord::Base.transaction do 
     create_table "users", :force => true do |t| 
     t.string :login, :limit => 40 
     t.string :name, :limit => 100, :default => '', :null => true 
     t.string :email, :limit => 100 
     t.string :crypted_password, :limit => 40 
     t.string :salt, :limit => 40 
     t.string :remember_token, :limit => 40 
     t.datetime :remember_token_expires_at 
     t.string :activation_code, :limit => 40 
     t.datetime :activated_at, :datetime 
     t.string :state, :null => :no, :default => 'passive' 
     t.datetime :deleted_at 
     t.integer :occupation_id, :null => :yes 
     t.datetime :paid_up_to_date, :date 
     t.timestamps 
     end 

我試圖改變的‘狀態’爲‘主動’的默認,而不是被動的 這是我的第二次嘗試;

class ChangeUserStateDefault < ActiveRecord::Migration 
    def self.up 
    change_column :users, :state, :null => :no, :default => 'active' 
end 
+0

後整個錯誤:自帶前後 「未定義的方法」 的部分。問題是哪個類/對象引發了這個錯誤? – 2010-05-01 15:03:53

+0

== ChangeUserStateDefault:migrating ========================================= - change_column(:users,:state,{:default =>「active」,:null =>:no}) rake中止! 發生錯誤,本次及所有後來的遷移取消: 未定義的方法'to_sym'爲{:default =>「active」,:null =>:否}:哈希 – sysconfig 2010-05-01 15:05:25

回答

64

編輯:

這個錯誤是因爲你失蹤的列的類型。 Usage

change_column(table_name, column_name, type, options = {}) 

所以這應該爲你工作:

change_column :users, :state, :string, :null => false, :default => 'active' 
+0

修復了它!謝謝! – sysconfig 2010-05-01 15:18:56

+0

你是一個拯救生命的人! – yossico 2017-01-24 09:36:19

相關問題