class Hello::Business::Management::UpdateProfile
Public Class Methods
new(user)
click to toggle source
# File lib/hello/business/management/update_profile.rb, line 5 def initialize(user) @user = user self.class.send :attr_accessor, *permitted_column_names end
Public Instance Methods
errors()
click to toggle source
def update(attrs)
@user.update(clear_attrs(attrs))
end
# File lib/hello/business/management/update_profile.rb, line 23 def errors @user.errors end
update(attrs)
click to toggle source
# File lib/hello/business/management/update_profile.rb, line 10 def update(attrs) # puts "update(#{attrs})".blue clear_attrs(attrs).each do |k, v| # puts "@user.send('#{k}=', '#{v}')".blue @user.send("#{k}=", v) end @user.save end
Private Instance Methods
clear_attrs(attrs)
click to toggle source
# File lib/hello/business/management/update_profile.rb, line 29 def clear_attrs(attrs) attrs.slice(*permitted_column_names) end
permitted_column_names()
click to toggle source
# File lib/hello/business/management/update_profile.rb, line 33 def permitted_column_names ignore_columns = %w(id created_at updated_at role) the_columns = ::User.column_names the_columns -= ignore_columns the_columns.reject! { |column| column.ends_with? '_count' } the_columns.reject! { |column| column.starts_with? 'password_' } the_columns end