2016-03-03 79 views
0

我想在模型上創建計算列,該列不在數據庫中。rails - 模型問題上的計算列

class Result < ActiveRecord::Base 
    attr_accessor :calculated_duration 


    def calculated_duration 
    (build_start_time - build_end_time) 
    end 

end 

這是我有什麼,我試圖訪問它是這樣的:

@results = Result.all.order(:build_number) 
@results.calculated_duration 

我得到一個無方法錯誤: 未定義的方法`calculated_duration」

能有人建議爲什麼?

回答

2

因爲你調用上的ActiveRecord::Collection

@result = Result.first 
@result.calculated_duration 

一個實例方法將工作

+0

是那裏得到它爲所有計算的方式,我可以稱之爲: @result = @all_results。 pluck(:build_start_time,:calculated_duration) – user3437721

+0

這將讀取計算的值Result.all.order(:build_number).to_json({:methods => [:calculated_duration]}) – Dinesh