Làm cách nào tôi có thể đặt giá trị mặc định trong ActiveRecord?
Tôi thấy một bài đăng từ Pratik mô tả một đoạn mã xấu xí, phức tạp: http://m.onkey.org/2007/7/24/how-to-set-default-values-in-your-model
class 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, :defaults
end
Tôi đã thấy các ví dụ sau đây googling xung quanh:
def initialize
super
self.status = ACTIVE unless self.status
end
và
def after_initialize
return unless new_record?
self.status = ACTIVE
end
Tôi cũng đã thấy mọi người đưa nó vào di chuyển của họ, nhưng tôi muốn thấy nó được xác định trong mã mô hình.
Có cách nào hợp quy để đặt giá trị mặc định cho các trường trong mô hình ActiveRecord không?