2013-10-30 62 views
0

我想選擇由date_select日期,但在數據庫中,我有查詢:未定義的方法`今年數組

"DATE_INTEGRATION" LIKE '["2008", "8", "28"]% 

我在表單中使用元搜索:

<%= f.date_select :date_integration_sw %> 

錯誤:

undefined method `year' for ["2008", "8", "28"]:Array 

我該如何解決?

我想獲得LIKE '2010-08-10%'或將<%= f.date_select :date_integration_sw %>轉換爲2010-08-10date_select

+0

請把你的問題放在一些更清晰的..什麼你的嘗試,你有什麼 –

+0

你在你的代碼中的任何地方調用'.year'? –

+0

沒有年份是第一個選擇,我如何在date_select中將'<%= f.date_select:date_integration_sw%>'轉換爲2010-08-10。 – Erihon1890

回答

0

擴大monanik的回答,把陣列到Date對象,這樣做:

Date.parse(["2008", "8", "28"].join('-')) 

這會返回一個響應方法yearmonthday的對象。

+0

我嘗試這個'<%​​= f.datetime_select Date.parse(:date_integration_sw).join(' - ')%>',但得到'不能將符號轉換爲字符串' – Erihon1890

+0

@ Erihon1890是的,那不行。 ':date_integration_sw'不是一個你可以傳遞的變量,它更像是一個佔位符,因此'f.date_select'知道你想顯示哪個字段。 'date_integration_sw'是數據庫字段嗎?該字段如何最終成爲代碼中的數組? – awendt

+0

是date_integration_sw是數據庫字段 – Erihon1890

-1

Instade陣列,通過 '日期' 或 '日期時間' 來f.date_select