ruby - Using an equation to get back an array that isn't "nil." -


i'm trying gather data db in form of array use inject method sum of duration attribute. however, can't array of integers because duration function, not value. don't know how save value when depends on range of dates. here's i've tried:

in console:

oldman = employee.first 

okay, duration works here..

oldman.furlough.first.duration => 1 

and here...

oldman.furlough.last.duration => 4 

but when try use 'all' array...

oldman.furlough.all.duration => nomethoderror: undefined method `duration' #<array:0x007fd75651c3d8> 

so i've tried...

oldman.furloughs.all(:select => :duration).collect(&:id) => [nil, nil] 

and...

oldman.furloughs.pluck(:duration) => [nil, nil] 

which both bring format want, not information.

here's furloughs model duration equation:

class furlough < activerecord::base   belongs_to :employee    def only_weekdays(range)     range.select { |d| (1..5).include?(d.wday) }.size       end    def psb_holidays     holidays.between(date_from, date_to, :us, :observed).size   end    def duration     (only_weekdays(date_from..date_to) - psb_holidays)   end end 

with dave's found work:

employee.first.furloughs.collect(&:duration) 

in furlough model, have new method defined follows:

def vacation_days_used   self.furloughs.collect(&:duration).inject(0) { | memo, n | memo + n }  end 

which gives me separate sums of each employee's furloughs.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -