diff --git a/.gitignore b/.gitignore index 4fc6b30..6e10082 100755 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,6 @@ # Ignore Mac folder settings .DS_Store + +# Ignore data directory +/public/data \ No newline at end of file diff --git a/app/controllers/benefit_forms_controller.rb b/app/controllers/benefit_forms_controller.rb index b1f586b..a74befb 100644 --- a/app/controllers/benefit_forms_controller.rb +++ b/app/controllers/benefit_forms_controller.rb @@ -16,7 +16,14 @@ class BenefitFormsController < ApplicationController end def upload - + file = params[:benefits][:upload] + if file + flash[:success] = "File Successfully Uploaded!" + Benefits.save(file, params[:benefits][:backup]) + else + flash[:error] = "Something went wrong" + end + redirect_to user_benefit_forms_path(:user_id => current_user.user_id) end diff --git a/app/models/benefits.rb b/app/models/benefits.rb index bc3d427..cebbdc4 100644 --- a/app/models/benefits.rb +++ b/app/models/benefits.rb @@ -1,7 +1,17 @@ class Benefits < ActiveRecord::Base + attr_accessor :backup - def self.save(file) - + def self.save(file, backup=false) + data_path = Rails.root.join("public", "data") + full_file_name = "#{data_path}/#{file.original_filename}" + f = File.open(full_file_name, "w+") + f.write file.read + f.close + make_backup(file, data_path, full_file_name) if backup == "true" + end + + def self.make_backup(file, data_path, full_file_name) + system("cp #{full_file_name} #{data_path}/bak#{Time.now.to_i}_#{file.original_filename}") end end diff --git a/app/views/benefit_forms/index.html.erb b/app/views/benefit_forms/index.html.erb index 01007c6..ee898a3 100644 --- a/app/views/benefit_forms/index.html.erb +++ b/app/views/benefit_forms/index.html.erb @@ -69,17 +69,18 @@
+ <%= hidden_field "benefits", "backup", :value => false %> - Add files... - <%= f.file_field :upload %> + Add file + <%= f.file_field :upload %> - +

Nothing selected
@@ -111,7 +112,14 @@ \ No newline at end of file