0

それは間違いでしたが、私はいくつかのモデルを呼び出しTestました(実際にはテストのため). ロールバックしてモデルに別の名前を付けるのは本当に遅いです。この方法では、モデル名を変更する際に多くのコードをチェックする必要があるためです。問題。コンソールで Test について何かを呼び出すと、エラーが発生します。

>> User.last
  #<User id: 44, email: nil, password_digest: nil, created_at: "2013-05-08 11:26:04", updated_at: "2013-05-08 11:26:04", guest: true>

User Load (4.0ms)  SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1

>> @test=Test.last
NoMethodError: undefined method `last' for Test:Module
    from (irb):7
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
    from C:/Users/HP/study/script/rails:6:in `require'
    from C:/Users/HP/study/script/rails:6:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'

私に何ができる?

4

1 に答える 1

1

モデルの名前をrails g migration rename_test. 次に、移行を次のように編集します

class RenameTest < ActiveRecord::Migration
  def self.up
    rename_table :test, :my_test
  end

 def self.down
    rename_table :my_test, :test
 end
end
于 2013-05-08T16:42:25.387 に答える