2012-11-24 45 views
0

我有2個對象Weeklyactivity and Weeklyfood。 Weeklyactivity的財產名爲food_id。和Weeklyfood有7個屬性,稱爲週一,週二,...,太陽如何迭代對象模型的值?

當用戶點擊更新每週食物時,操作方法將檢索給定周的每日活動。它還檢索所有每週食物對象,其包含用戶在該周的每天吃的食物ID

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

現在我想遍歷weeklyfood和transfert它的數據,其中包含用戶吃了一週的每一天食物的ID。

我不知道這是否是正確的方式來做到這一點,或者即使有一個緊湊的方式來編寫此代碼。

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

編輯

,我發現了以下錯誤:「不能轉換成散列整數...」

回答

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

+0

我不僅解決了這個問題,我也學到了很多東西。非常感謝。 – Richard77

+0

不客氣,我想你也可以用'@weeklyfood [weekly_activity.day]'來代替'@weeklyfood [weekly_activity.day.to_sym]',但我想確保它能正常工作。 – 244an