2010-12-16 5 views
0

私は移行スクリプトの一部のデータを移行しようとしていますが、データが保存されていないようです。ただし、コードをコピーしてコンソールで直接実行すると、保存されます。なぜ誰かが私を助けることができますか?レール移行スクリプトVSコンソール

これはマイグレーションスクリプトのコードです。自分のテーブルから自分のアバターデータをプロファイルテーブルに移動しています。

+0

について

User.reset_column_information Profile.reset_column_information 

もっとAvatar.all.each上記のこれらの行を追加し

てみ... 'a.feature == true'の場合、あなたは'使用することができます。フィーチャー? Railsは自動的に追加されますか?ブール値の属性の終わりまで –

答えて

5

これは、列を変更して同じマイグレーションでそれらを使用しようとしているためだと思いますが、そのモデルはフィールドについて認識していません。場合の代わりに、このhttp://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-reset_column_information

+0

それはまさにそれでした!ありがとう!唯一の問題は、厄介な特集コラムです。 sqliteは 't'&' f'として保存しますが、その値をどのように保持するかはわかりません。私は '== true'、' == 't''、 ''もし特徴があるのか​​?' 'のチェックをしています。フードの下で何が起きているのか分かりませんが、私の例のように設定するだけで作業はできません。彼らは常にfalseを返します。 – brewster

+0

@ brewster:例外が見つからない場合に備えて 'user.save!'を試してください。一般に、移行で例外を発生させることは良いことです。 'log/development.log'を見て、実行されているSQLを見ることもできます。 – zetetic

+0

@ brewster - zeteticが述べているように、 'save! 'を使ってみてください。ユーザーが無効である可能性が高いため、移行中にその理由が表示されます。 –

関連する問題