私は何が足りないのかよくわかりません - 私は最近Product
カテゴリを静的列挙からテーブルに移しましたので、参照を変更する必要がありました。Rails 5 Migration - 参照が見つかりません
私は新鮮なスキーマ(縮小)
のために今、私はProduct
テーブル
class CreateTasks < ActiveRecord::Migration[5.1]
def change
create_table :tasks do |t|
t.string :task_name
t.text :comment
t.datetime :task_start_date
t.datetime :task_end_date
t.references :project
t.timestamps
end
end
end
class AddDocumentsToTasks < ActiveRecord::Migration[5.1]
def change
add_reference :tasks, :document, foreign_key: true
add_reference :tasks, :product, foreign_key: true
end
end
class AddClientIdToTasks < ActiveRecord::Migration[5.1]
def change
add_foreign_key :tasks, :client, foreign_key: true
end
end
への参照を持っている必要がありTasks
テーブルを構築し、私の多数の移行を組み合わせます実際にはt.integer "product"
がタスクフォルダから来ているという手がかりはありません。私はすべてを見てきました。
それがために現在のような警告のすべての統合/シーディングを壊しています: ActiveRecord::AssociationTypeMismatch: Product(#69974683871240) expected, got 1 which is an instance of Integer(#13017840)
私はそれが私が欠けている非常にシンプルなものだが、それは非常に冗長なコードですので、それが動作する理由私はかなり知らないと仮定ドキュメント/プロジェクト用ですが、製品用ではありません。念のため
:私は完全に理由を理解するが、私が何をしたかrails db:reset
誤解のようにそれはそうまで は製品の移行
class CreateProducts < ActiveRecord::Migration[5.1]
def change
create_table :products do |t|
t.string :product_name
t.text :product_description
t.references :client
t.references :task
t.timestamps
end
end
エンド**
更新
がこれを答えていません。いったん私がドロップ/作成/移行/シードを段階的に実行すると、DB構造全体が蹴られ、新しいスキーマが発生しました。
それはdb:reset 私のSchema.rbファイル内のロジックを使用していたようだ。
問題は解決していますか? –