Method: DeviseController#build_resource

Defined in:
app/controllers/devise_controller.rb

#build_resource(hash = nil, options = {}) ⇒ Object (protected)

Build a devise resource. Assignment bypasses attribute protection when :unsafe option is passed



98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'app/controllers/devise_controller.rb', line 98

def build_resource(hash = nil, options = {})
  hash ||= resource_params || {}

  if options[:unsafe]
    self.resource = resource_class.new.tap do |resource|
      hash.each do |key, value|
        setter = :"#{key}="
        resource.send(setter, value) if resource.respond_to?(setter)
      end
    end
  else
    self.resource = resource_class.new(hash)
  end
end