Ruby on Rails - 尝试运行“rake db:migrate”时出现错误

时间:2014-04-23 23:47:42

标签: mysql ruby-on-rails ruby rake dbmigrate

我是学习Ruby on Rails的新手,当我运行" rake db:migrate"在命令行中,我收到以下错误:

  耙子流产了!   语法错误:> /Users/user_name/Sites/simple_cms/db/migrate/20140423221836_alter_users.rb:15:语法>错误,意外':',期待')'   ... dmin_users"," email",:string:default => "",:null =>假)   ...... ^

     

任务:TOP => DB:迁移   (通过使用--trace运行任务查看完整跟踪)**

这是我的代码:

class AlterUsers < ActiveRecord::Migration

  def up
    rename_table("users", "admin_users")
    add_column("admin_users", "username", :string, :limit => 25, :after => "email")
    change_column("admin_users", "email", :string, :limit => 100)
    rename_column("admin_users", "password", "hashed_password")
    puts "*** Adding an index is next ***"
    add_index("admin_users", "username")
  end

  def down
    remove_index("admin_users", "username")
    rename_column("admin_users", "hashed_password", "password")
    change_column("admin_users", "email", :string :default => "", :null => false)
    remove_column("admin_users", "username")
    rename_table("admin_users", "users")
  end

end

我一直在检查并重新检查我的代码,但无法找到解决方案......眼睛比我更好的人可以看看吗?谢谢!

1 个答案:

答案 0 :(得分:1)

down方法的第3行,您错过了逗号

change_column("admin_users", "email", :string :default => "", :null => false)

                                             ^ 
                                           ## missing comma

这就是您收到unexpected ':', expecting ')' ...dmin_users", "email", :string :default => "", :null => false)

错误的原因

只需在:string:default之间添加逗号,然后运行rake db:migrate