0

私はこのメソッドを持っています。レーキタスクの後でデータをモデルに保存する必要がありますが、一度に2つの列を更新しようとしていますが、これは問題にはなりません。

  def update_fixtures #rake task method
   Fixture.destroy_all
   get_home_fixtures.each {|home| Fixture.create!(home_team: home )}
   get_away_fixtures.each {|away| Fixture.create!(away_team: away )}
  end

この場合、アウェイチームのみが保存されますが、これを行うと

  def update_fixtures #rake task method
     Fixture.destroy_all
     get_away_fixtures.each {|away| Fixture.create!(away_team: away )}
     get_home_fixtures.each {|home| Fixture.create!(home_team: home )}
  end

その後、ホームチームのみが保存します。

@ model.errors.full_messagesを試しましたが、nilクラスの未定義のメソッドを取得したので、何もありませんか?

この問題をデバッグしようとしていますが、問題を見つけるために何を使用できるかわかりません

誰かがこれを以前に経験したことがありますか?私を狂わせる

編集

コンソールから手動でフィールドを更新できるので、

Fixture.create(:away_team => "String")

正常に更新されます

ありがとう

4

1 に答える 1

1

を使用#create!しているため、保存に失敗した場合はエラーがスローされます。これは、何も保存しようとしていないことを意味します(空の配列)。

それを確認する

get_away_fixtures
get_home_fixtures

あなたが期待するように見てください。インストールdebuggerして、の後に追加しFixture.destroy_allます。

于 2013-03-13T14:35:40.660 に答える