地圖我作出選擇ActiveRecord的和回報率
m_repeats = Event.where(:repeat => 'monthly').where("schedule < ?", date.end_of_month)
然後我需要改變shedule(它是日期字段)中的每個元素。
我嘗試這樣做:
m_repeats.map{ |elem| elem.schedule.year = date.today.year, elem.schedule.month = date.today.month }
但我得到的錯誤:
Mysql2::Error: Unknown column 'schedule' in 'where clause': SELECT `events`.* FROM `events` WHERE `events`.`repeat` = 'monthly' AND (schedule < '2013-04-30')
或 未定義的方法`時間表」爲#
什麼是做正確的方式?
您已確認的事件表在schema.rb時間表場「shedule」「計劃」?你能訪問Event.first.schedule嗎? – Frans 2013-04-04 11:01:05
是的。 create_table「events」,:force => true do | t | t.string 「標題」 t.date 「shedule」 t.integer 「user_id說明」 t.datetime 「created_at」,日期null =>假 t.datetime 「的updated_at」,日期null =>假 噸。字符串「重複」 結束 另外我的「Where(...)」選擇正常工作,並且只在添加映射代碼時看到錯誤 – Gabi 2013-04-04 11:04:42
是的,但是'map'不是您獲取db的原因錯誤,看起來像第二個「where」。 – Frans 2013-04-04 11:11:39