2012-07-19 60 views
2

我試圖找到一個名爲length列,這是簡單的整數列充滿秒每條記錄歷時數的總和列的總和。Ruby on Rails的:尋找在返回的搜索查詢

我有一個搜索表單設置要查詢的一些情況我已經在控制器中設置的DB:

@time_entries = TimeEntry.find(:all, :conditions => [ "(user_id = ?) AND (projecttitle LIKE ?) AND (date BETWEEN ? AND ?)", current_user, '%'+params[:projecttitle]+'%', @startdate, @enddate ]) 

,然後我跟着我的代碼不起作用該查詢,試圖求和我返回的查詢的length列...

@total_time = @time_entries.sum(:length) 

,然後當我走在我的<%= @total_time %>視圖渲染了這一點,我得到這個錯誤:

undefined method '+' for #<TimeEntry:0x007ffdbbd45b78>

任何想法?你的幫助是非常appretiated :)

回答

4

變化

@total_time = @time_entries.sum(:length) 

@total_time = @time_entries.sum(&:length) 

僅供參考,如果你只需要一列像

@time_entries = TimeEntry.find(:all, :select => 'length', 
        :conditions => [ "(user_id = ?) AND (projecttitle LIKE ?) 
          AND (date BETWEEN ? AND ?)", current_user, 
          '%'+params[:projecttitle]+'%', @startdate, @enddate ]) 
操作使用 :select子句中查詢

如果你只需要表中某列的總和,你可以使用sum方法如

@total_time = TimeEntry.sum(:length, 
        :conditions => [ "(user_id = ?) AND (projecttitle LIKE ?) 
          AND (date BETWEEN ? AND ?)", current_user, 
          '%'+params[:projecttitle]+'%', @startdate, @enddate ]) 
+0

工程就像一個魅力!非常感謝 - 我可以問一下'&:'添加了什麼? – briankulp 2012-07-19 08:36:30

+1

@briankulp檢查了這一點http://stackoverflow.com/questions/1961030/ruby-ruby-on-rails-ampersand-colon-shortcut – Steve 2012-07-19 08:37:35

+0

感謝名單史蒂夫中的鏈接:) – Salil 2012-07-19 08:39:33