天天看點

014 對model進行計算

Did you know ActiveRecord provides class methods for performing calculations on models? You can even use these methods through associations.

你知道ActiveRecord提供了許多類方法,用來實作對model屬性的計算嗎?你甚至可以通過關聯來适用這些方法。

打開console

>>Task.find(:first).priority

=>4

priority是task類的對象的一個屬性。

可以計算這個類的所有對象這個屬性的和:

>>Task.sum(:priority)

=>15

還可以加上conditions

>>Task.sum(:priority, :conditions=>"complete=0")

=>13

>>Task.maximum(:priority)

=>Task.minimum(:priority)

=>1

=>Task.average(:priority)

=>2.5

下面來看個通過關聯來使用計算方法的例子:

>>p=Project.find(:first)

=>#<Project :0x32dce38 @attributes={"name"=>"Programming", "id"=>"1"}>

=>p.tasks.sum(:priority)

=>9

>>p.tasks.sum(:priority, :condition=>"complete=0")

=>7

下面是這些計算方法

  • average
  • calculate
  • construct_count_options_from_args
  • count
  • maximum
  • minimum
  • sum
  • 繼續閱讀