Class: Spree::AddressesController

Inherits:
StoreController show all
Defined in:
app/controllers/spree/addresses_controller.rb

Instance Method Summary collapse

Methods inherited from StoreController

#account_link, #api_tokens, #cart_link, #ensure_cart, #forbidden, #unauthorized

Instance Method Details

#createObject



11
12
13
14
15
16
17
18
19
# File 'app/controllers/spree/addresses_controller.rb', line 11

def create
  @address = try_spree_current_user.addresses.build(address_params)
  if @address.save
    flash[:notice] = I18n.t(:successfully_created, scope: :address_book)
    redirect_to spree.
  else
    render action: 'new'
  end
end

#destroyObject



50
51
52
53
54
55
# File 'app/controllers/spree/addresses_controller.rb', line 50

def destroy
  @address.destroy

  flash[:notice] = Spree.t(:successfully_removed, scope: :address_book)
  redirect_to(request.env['HTTP_REFERER'] || addresses_path) unless request.xhr?
end

#editObject



21
22
23
# File 'app/controllers/spree/addresses_controller.rb', line 21

def edit
  session['spree_user_return_to'] = request.env['HTTP_REFERER']
end

#indexObject



7
8
9
# File 'app/controllers/spree/addresses_controller.rb', line 7

def index
  @addresses = try_spree_current_user.addresses
end

#newObject



25
26
27
# File 'app/controllers/spree/addresses_controller.rb', line 25

def new
  @address = Spree::Address.default
end

#updateObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/spree/addresses_controller.rb', line 29

def update
  if @address.editable?
    if @address.update(address_params)
      flash[:notice] = Spree.t(:successfully_updated, scope: :address_book)
      redirect_back_or_default(addresses_path)
    else
      render :edit
    end
  else
    new_address = @address.clone
    new_address.attributes = address_params
    @address.update_attribute(:deleted_at, Time.current)
    if new_address.save
      flash[:notice] = Spree.t(:successfully_updated, scope: :address_book)
      redirect_back_or_default(addresses_path)
    else
      render :edit
    end
  end
end