我正在嘗試使用Arel#提取方法。我在源碼中的test_extract.rb中看到了一個測試用例中的例子,但是當我嘗試在我的應用程序中重現它時,我得到了未定義的方法。在rails中如何使用Arel#extract方法?
table = Arel::Table.new :users
puts table[:created_at].extract('hour').to_sql
=> NoMethodError: undefined method `extract' for #<Arel::Attributes::Attribute:0x7..8>
我使用pg作爲數據庫。
更新:
我的目標是與這一結果在SQL中結束:
SELECT users.* FROM users WHERE EXTRACT(HOUR from users."created_at") = '1'
我想找到一小時等於創建的所有用戶的任何一天之一。這在SQL中工作,但我想知道如何在AREL中創建它。這是一個example如何在arel測試套件中使用。
我沒有在文檔中看到'#extract'作爲Arel :: Table類的一部分。你想做什麼?從表中檢索「date」? – ScottJShea 2012-03-14 23:32:56
我更新了說明以回答您的問題。 – 2012-03-14 23:46:39
ActiveRecord查詢會對你更好嗎? 'Users.where(「Minute(?)= 1」,:created_at).all'? – ScottJShea 2012-03-15 00:10:31