亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在ActiveRecord中設置默認值?

如何在ActiveRecord中設置默認值?

慕俠2389804 2019-10-04 14:24:10
如何在ActiveRecord中設置默認值?我從Pratik看到一篇帖子,描述了一個丑陋,復雜的代碼塊:http : //m.onkey.org/2007/7/24/how-to-set-default-values-in-your-modelclass Item < ActiveRecord::Base    def initialize_with_defaults(attrs = nil, &block)    initialize_without_defaults(attrs) do      setter = lambda { |key, value| self.send("#{key.to_s}=", value) unless        !attrs.nil? && attrs.keys.map(&:to_s).include?(key.to_s) }      setter.call('scheduler_type', 'hotseat')      yield self if block_given?    end  end  alias_method_chain :initialize, :defaultsend我看過以下示例:  def initialize     super    self.status = ACTIVE unless self.status  end和  def after_initialize     return unless new_record?    self.status = ACTIVE  end我也看到人們在遷移中使用了它,但是我寧愿看到它在模型代碼中定義。有沒有一種規范的方法可以為ActiveRecord模型中的字段設置默認值?
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

我們通過遷移(通過:default在每個列定義上指定選項)將默認值放入數據庫中,然后讓Active Record使用這些值來設置每個屬性的默認值。

恕我直言,這種方法符合AR的原則:約定優于配置,DRY,表定義驅動模型,而不是相反。

請注意,默認值仍在應用程序(Ruby)代碼中,盡管不在模型中,但在遷移中。


查看完整回答
反對 回復 2019-10-04
  • 3 回答
  • 0 關注
  • 714 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號