1

Ancestry gemをインストールしようとしていますが、に問題がありrake db:migrateます。

私はAncestrygithubページの指示に従っています。完了rails g migration add_ancestry_to_message ancestry:string したら、移行ファイル(railcast#262に続く)を次のように編集しています。

class AddAncestryToMessage < ActiveRecord::Migration
  def self.up
    add_column :messages, :ancestry, :string
    add_index :messages, :ancestry
  end

  def self.down
    remove_index :messages, :ancestry
    remove_column :messages, :ancestry
  end
end

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

==  AddAncestryToMessage: migrating ===========================================
-- add_column(:messages, :ancestry, :string)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: no such table: Shipmgr: ALTER TABLE "Message" ADD "ancestry" varchar(255)

Tasks: TOP => db:migrate

新しく作成したRailsアプリと既存のRailsアプリでこれを試しましたが、それでも機能させることができません。この問題について誰かアドバイスはありますか?

4

1 に答える 1

0

移行クラス名を複数形(表)形式の「メッセージ」に変更してみてください。

class AddAncestryToMessages < ActiveRecord::Migration

または、より正確には、移行ジェネレータコマンドを次のように変更します。

rails g migration add_ancestry_to_messages ancestry:string
于 2012-01-11T23:39:01.390 に答える