0

を実行しようとすると、次のエラーが発生しました。rake db:migrate

rake db:migrate
-- selt()
-- selt()
rake aborted!
ActiveRecord::MigrationProxy#disable_ddl_transaction delegated to migration.disable_ddl_transaction, but migration is nil: #<struct ActiveRecord::MigrationProxy name="DoNothingYet", version=20130722001522, filename="/Users/tidydee/Sites/simple_cms/db/migrate/20130722001522_do_nothing_yet.rb", scope="">
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:712:in `rescue in disable_ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:708:in `disable_ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:1012:in `use_transaction?'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:922:in `rescue in block in migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:919:in `block in migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

これは私の DoNothingYet 移行ファイルです。

class DoNothingYet < ActiveRecord::Migration
  def change
  end

  def self.up 
    # instructions for changing the db to a new state
  end

  def selt.down
    #intructiosn for changing the db back to the previous state
  end
end

構文エラー:

rake db:migrate
rake aborted!
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:4: syntax error, unexpected ':', expecting keyword_end
    t.string "first_name" :limit => 25
                           ^
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:5: syntax error, unexpected ':', expecting keyword_end
    t.string "last_name" :limit => 50
                          ^
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:6: syntax error, unexpected ':', expecting keyword_end
    t.string "email" :default => "", :null => false
                      ^
/Users/tidydee/Sites/simple_cms/db/migrate/20130722001921_create_users.rb:7: syntax error, unexpected ':', expecting keyword_end
    t.string "password" :limit => 40
                         ^
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:718:in `load_migration'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:714:in `migration'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:708:in `disable_ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:1012:in `use_transaction?'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:1004:in `ddl_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:958:in `execute_migration_in_transaction'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:920:in `block in migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `each'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:916:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:764:in `up'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/migration.rb:742:in `migrate'
/Users/tidydee/.rvm/gems/ruby-2.0.0-p247/gems/activerecord-4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'

ユーザーの移行ファイル:

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
    t.string "first_name" :limit => 25
    t.string "last_name" :limit => 50
    t.string "email" :default => "", :null => false
    t.string "password" :limit => 40
    t.timestamps

    end
  end

def self.down
   drop_table:us   
end

end

誰かが理由を知っていますか?そして、これを適切に移行するにはどうすればよいですか

4

1 に答える 1

1

この部分に誤りがあります

def selt.down
end

そのはず:

def self.down
end

また、移行では、

t.string "first_name", :limit => 25

それ以外の

t.string "first_name" :limit => 25
于 2013-07-22T01:19:51.567 に答える