I have an IncomingEmail model with an attachments virtual attr开发者_开发知识库ibute:
class IncomingEmail < ActiveRecord::Base  
  attr_accessor :attachments
end
I want the attachments virtual attribute to be initialized to [] rather than nil so that I can do:
>> i = IncomingEmail.new
=> #<IncomingEmail id: nil,...)
>> i.attachments << "whatever"
Without first setting i.attachments to [] (put another way, I want this virtual attribute to default to an empty array rather than nil)
use after_initialize callback
class IncomingEmail < ActiveRecord::Base  
  attr_accessor :attachments
  def after_initialize
    self.attachments ||= [] # just in case the :attachments were passed to .new
  end
end
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论