Ruby on Rails - продолжайте получать сообщение об ошибке при попытке запустить "rake db:migrate"
Я новичок в изучении Ruby on Rails, и когда я запускаю "rake db: migrate" в командной строке, я получаю следующую ошибку:
грабли прерваны! SyntaxError: >/Users/user_name/Sites/simple_cms/db/migrate/20140423221836_alter_users.rb:15: синтаксис> ошибка, неожиданное ':', ожидание ')' ...dmin_users", "email",:string:default => "",:null => false) ... ^
Задачи: TOP => db:migrate (посмотреть полную трассировку, запустив задачу с --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 ответ
На 3-й строке down
метод, вы пропустили запятую
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
,