1

レールにはライフサイクルフックがあり、これを行うことができます:

class Subscription < ActiveRecord::Base
  before_create :record_signup

  private
    def record_signup
      self.signed_up_on = Date.today
    end
end

で同じことを達成するための最良の方法はありますか(デフォルト値を設定する必要があります) Spine.js?

現在、私はこの方法でやっていますが、もっと良い方法が存在するのでしょうか?

class Subscription extends Spine.Model
    @record_signup: (self) ->
      self.signed_up_on = new Date()

Subscription.bind 'beforeSave', Subscription.record_signup
4

2 に答える 2

2

CoffeeScript クラス本体は実行可能です:

class Subscription extends Spine.Model
    @record_signup: (self) ->
      self.signed_up_on = new Date()

    @bind 'beforeSave', @record_signup
于 2013-03-30T10:58:41.050 に答える
1

デフォルト値が設定されていない場合は、標準の Model.create 関数をオーバーライドしてデフォルト値を含めるのはどうですか?

@create: (atts, options) ->
  atts.myVal or= 'someDefault'
  record = new @(atts)
  record.save(options) 
于 2013-04-01T20:21:41.547 に答える