2014-10-10 105 views
1

我嘗試添加索引使用下面的命令軌道遷移:錯誤,同時增加索引軌道遷移

rails generate migration add_user_id_to_pins user_id:integer:index 

,我得到這個錯誤:

irb(main):014:0> rails generate migration add_user_id_to_pins user_id:integer:index 
SyntaxError: (irb):14: syntax error, unexpected tLABEL 
rails generate migration add_user_id_to_pins user_id:integer:index 
                  ^
     from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/console.rb:90:in `start' 
     from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/console.rb:9:in `start' 
     from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:69:in `console' 
     from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:40:in `run_command!' 
     from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands.rb:17:in `<top (required)>' 
     from bin/rails:4:in `require' 
     from bin/rails:4:in `<main>' 

如果進一步的幫助,這裏是我的模型: 用戶等級:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    has_many :pins 
end 

銷類:

class Pin < ActiveRecord::Base 
    belongs_to :user 
end 

關聯在生成兩個域類後添加。用戶類是由Devise生成的,Pin是通過調用rails generate生成的。

我看到rails guide和語法似乎是正確的。那麼爲什麼這個錯誤會彈出?

回答

5

在系統控制檯(終端)中運行此命令,而不是導軌控制檯或irb控制檯。它應該工作。

+0

啊耶!有效。我在Windows上使用它,並嘗試在調用rails控制檯後從git bash運行。那次它失敗了。但是,當直接從git bash直接運行而不調用rails console時,它就會運行!謝啦! – rahulserver 2014-10-10 16:14:09