Class: RailsDb::TablesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/rails_db/tables_controller.rb

Constant Summary collapse

LOAD_TABLE_ACTIONS =
[:show, :data, :csv, :truncate, :destroy, :edit, :update, :xlsx, :search, :new, :create]

Instance Method Summary collapse

Instance Method Details

#createObject



22
23
24
25
26
27
28
29
30
# File 'app/controllers/rails_db/tables_controller.rb', line 22

def create
  @record = model.new(record_attributes)
  @record.save!
  build_search
  respond_to do |page|
    page.html { redirect_to action: :data, table_id: params[:table_id] }
    page.js {}
  end
end

#csvObject



41
42
43
# File 'app/controllers/rails_db/tables_controller.rb', line 41

def csv
  send_data(@table.to_csv, type: 'text/csv; charset=utf-8; header=present', filename: "#{@table.name}.csv")
end

#dataObject



32
33
34
35
36
37
38
39
# File 'app/controllers/rails_db/tables_controller.rb', line 32

def data
  session[:per_page] = per_page
  build_search
  respond_to do |page|
    page.html {}
    page.js {}
  end
end

#destroyObject



58
59
60
61
62
63
64
65
# File 'app/controllers/rails_db/tables_controller.rb', line 58

def destroy
  build_search
  @table.delete(params[:pk_id])
  respond_to do |page|
    page.html { redirect_to action: :data, table_id: params[:table_id] }
    page.js {}
  end
end

#editObject



67
68
69
70
71
72
73
# File 'app/controllers/rails_db/tables_controller.rb', line 67

def edit
  @record = @table.as_model.find(params[:pk_id])
  respond_to do |page|
    page.html { redirect_to action: :data, table_id: params[:table_id] }
    page.js {}
  end
end

#indexObject



11
12
13
# File 'app/controllers/rails_db/tables_controller.rb', line 11

def index
  @tables = RailsDb::Database.accessible_tables
end

#newObject



18
19
20
# File 'app/controllers/rails_db/tables_controller.rb', line 18

def new
  @record = model.new
end

#showObject



15
16
# File 'app/controllers/rails_db/tables_controller.rb', line 15

def show
end

#truncateObject



53
54
55
56
# File 'app/controllers/rails_db/tables_controller.rb', line 53

def truncate
  @table.truncate
  render :data
end

#updateObject



75
76
77
78
79
80
81
82
# File 'app/controllers/rails_db/tables_controller.rb', line 75

def update
  @record = @table.as_model.find(params[:pk_id])
  @record.update_attributes(record_attributes)
  respond_to do |page|
    page.html { redirect_to action: :data, table_id: params[:table_id] }
    page.js {}
  end
end

#xlsxObject



45
46
47
48
49
50
51
# File 'app/controllers/rails_db/tables_controller.rb', line 45

def xlsx
  if defined? Axlsx
    render xlsx: 'table', filename: "#{@table.name}.xlsx"
  else
    raise 'RailsDb could not find Axlsx, please add it to your Gemfile: "gem \'axlsx_rails\'"'
  end
end