0

WeeklyactivityWeeklyfoodの 2 つのオブジェクトがあります。Weeklyactivity には food_id というプロパティがありますWeeklyfoodにはmon、tue、...、sunという 7 つのプロパティがあります。

ユーザーが [週ごとの食事の更新] をクリックすると、アクション メソッドは特定の週の毎日の活動を取得します。また、ユーザーがその週に毎日食べた食べ物のIDを含むすべての Weeklyfood オブジェクトも取得します。

Weeklyactivities = Weeklyactivity.where(:week => wk)
@weeklyfood = Weeklyfood.New(forms[:weeklyfood])

ここで、weeklyfood を反復処理して、そのデータを転送したいと思います。このデータには、ユーザーが毎日食べた食べ物の ID が含まれています。

これが正しい方法なのか、それともこのコードをコンパクトに書く方法があるのか​​さえ、私にはわかりません。

Weeklyactivities[:day => 'mon'].food_id = @weeklyfood[:mon]
Weeklyactivities[:day => 'tue'].food_id = @weeklyfood[:tue]
//and son ...

編集

次のエラーが表示されます: 「ハッシュを整数に変換できません...」

4

1 に答える 1

1

質問を理解しているかどうかわかりません。

Weeklyactivity属性weekday(およびその他)を持つモデルがありますか?

そして、あなたのコード例によると、あなたはすでに週のすべての日のためにデータベースに行を作成していますWeeklyactivityか?

これらの行をフォームから更新しますか?

その場合、私はこの提案があります:

@weeklyfood = Weeklyfood.New(forms[:weeklyfood])
Weeklyactivity.where(:week => wk).each do |weekly_activity|
  if food_id = @weeklyfood[weekly_activity.day.to_sym]
    weekly_activity.food_id = food_id
    unless weekly_activity.save
      # do stuff if not successful
      break
    end
  end
end

そして、私はあなたのオブジェクトWeeklyactivityWeeklyfood名前を付けWeeklyActivityWeeklyFoodそれぞれテーブルを付けてweekly_activitiesweekly_foods

于 2012-11-25T00:50:35.433 に答える