0

datetime filds order_confirmed_atcompletion_confirmed_atを取得しました

class CoolModel < ActiveRecord::Base
  attr_accessible :order_confirmed, completion_confirmed

  def order_confirmed
    order_confirmed_at.present?
  end

  def order_confirmed=(state)
    if state and order_confirmed_at.blank?
      self.order_confirmed_at = Time.now
    end
    order_confirmed_at.present?
  end

  def completion_confirmed
    completion_confirmed_at.present?
  end

  def completion_confirmed=(state)
    if state and completion_confirmed_at.blank?
      self.completion_confirmed_at = Time.now
    end
    completion_confirmed_at.present?
  end
end

...私の見解では、注文が確認されて完了したことを示すチェックボックスをオンにするだけです

問題は、これは複製であるだけでなく、明らかに標準的なものに見えるということです。それで、宝石を書く時間を節約するために:これを行うレールの宝石/エンジンはありますか(または、私が気付いていないレールの一部かもしれません)??

class CoolModel < ActiveRecord::Base
  #something like this 
  acts_even_coller_on :order_confirmed_at, :completion_confirmed_at
end
4

1 に答える 1

0

セッターメソッドをオーバーライドするだけです。

def confirmed_at=(value)
  super value == "true" ? confirmed_at || Time.now : nil
end
于 2012-08-15T14:08:02.217 に答える