class method
self.new
Ruby on Rails 3.2.22.5
Since v2.2.3 Last seen in v3.2.22.5Signature
self.new(attributes = nil, options = {})
New objects can be instantiated as either empty (pass no construction parameter) or pre-set with attributes but not yet saved (pass a hash with key names matching the associated table column names). In both instances, valid attribute keys are determined by the column names of the associated table – hence you can’t have attributes that aren’t part of the table columns.
initialize respects mass-assignment security and accepts either :as or :without_protection options in the options parameter.
Examples
# Instantiates a single new object User.new(:first_name => 'Jamie') # Instantiates a single new object using the :admin mass-assignment security role User.new({ :first_name => 'Jamie', :is_admin => true }, :as => :admin) # Instantiates a single new object bypassing mass-assignment security User.new({ :first_name => 'Jamie', :is_admin => true }, :without_protection => true)
Parameters
-
attributesopt = nil -
optionsopt = {}
Source
# File activerecord/lib/active_record/base.rb, line 481
def initialize(attributes = nil, options = {})
defaults = Hash[self.class.column_defaults.map { |k, v| [k, v.duplicable? ? v.dup : v] }]
@attributes = self.class.initialize_attributes(defaults)
@association_cache = {}
@aggregation_cache = {}
@attributes_cache = {}
@new_record = true
@readonly = false
@destroyed = false
@marked_for_destruction = false
@previously_changed = {}
@changed_attributes = {}
ensure_proper_type
populate_with_current_scope_attributes
assign_attributes(attributes, options) if attributes
yield self if block_given?
run_callbacks :initialize
end
Defined in activerecord/lib/active_record/base.rb line 481
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Base