私は実際、データベースの移行とその種に関して大きな問題に直面しています。formes
2 つのフィールドを含むテーブルがありname
ますcountry_id
。最近、code
フィールドを追加する必要があったので、次のようにしました。
class AddCodeToFormes < ActiveRecord::Migration
def change
add_column :formes, :code, :string
end
end
これまでのところ、移行パスは を使用して成功してrake db:migrate
います。次に、seeds
ファイルに、新しいデータを入力するために新しい列を追加したいと考えました。ここに私のファイルがあります:
country = Country.create!( code: 'US', name: 'USA' )
Forme.delete_all
Forme.create!( name: '-', country_id: country.id, code: '-' )
Forme.create!( name: 'item 1', country_id: country.id, code: 'PARTICULIER' )
Forme.create!( name: 'item 2', country_id: country.id, code: 'PATENTE' )
Forme.create!( name: 'item 3', country_id: country.id, code: 'SARL' )
Forme.create!( name: 'item 4', country_id: country.id, code: 'EURL' )
次に、rake db:seed
データベースに入力するために最初に行ったように実行しました。エラーなしで動作し、データはデータベースに正常に入力されます。
しかし、アプリケーションにアクセスしようとすると、次のような関連データにアクセスしようとするとエラーが発生します。@contact.forme.code
そして、データベースを再作成すると、魔法のように機能します。それで、私は何を間違えましたか?
EDIT :
役立つかもしれない情報は、私の mysql データベース エンジンが InnoDB であることです。コメントで述べたように、目に見えるエラーはなく、データベースは問題ないように見えますが、ActiveRecord は関連付けを処理できなくなりました
EDIT 2: my に値が
なければ、それは魅力のように機能しますcode
seeds.rb
EDIT 3:
ページにアクセスすると、Railsは実際にエラーを出します: undefined method 'code' for nil:NilClass
on@contact.forme.code