Class: Bible270::ProfilesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/bible270/profiles_controller.rb

Overview

A reader editing their own name — the one thing about themselves they can change. Everything else about a reader comes from how they signed in.

Instance Method Summary collapse

Instance Method Details

#editObject



9
10
11
# File 'app/controllers/bible270/profiles_controller.rb', line 9

def edit
  @names = current_reader.suggested_names
end

#remove_avatarObject



33
34
35
36
# File 'app/controllers/bible270/profiles_controller.rb', line 33

def remove_avatar
  current_reader.remove_avatar!
  redirect_to profile_path, notice: 'Your picture has been removed.'
end

#updateObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/controllers/bible270/profiles_controller.rb', line 13

def update
  problems = []
  problems << 'both a first and last name' unless current_reader.update_names(params[:first_name],
                                                                              params[:last_name])
  if params[:bible_version].present? && !current_reader.update_bible_version(params[:bible_version])
    problems << 'a translation from the list'
  end
  if params[:avatar].present? && !current_reader.attach_avatar(params[:avatar])
    problems << (current_reader.errors[:avatar].first || 'a valid image')
  end

  if problems.empty?
    redirect_to reader_path(current_reader), notice: 'Your profile has been updated.'
  else
    @names = { first_name: params[:first_name], last_name: params[:last_name] }
    flash.now[:alert] = "Please give #{problems.to_sentence}."
    render :edit, status: :unprocessable_entity
  end
end