Skip to content

Commit

Permalink
separate uploaded and generated files
Browse files Browse the repository at this point in the history
  • Loading branch information
manxingxing committed Nov 12, 2013
1 parent dc7be05 commit 80612cc
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 10 deletions.
5 changes: 2 additions & 3 deletions app/models/datafile.rb
@@ -1,9 +1,8 @@
class Datafile < ActiveRecord::Base
belongs_to :dataset

has_attached_file :file, :basename => "basename",
:path => ":rails_root/files/:id_:filename",
:url => "/files/:id/download"
has_attached_file :file, :basename => "basename", :path => ":rails_root/files/uploaded/:id_:filename"

validates_attachment_presence :file

def basename
Expand Down
3 changes: 1 addition & 2 deletions app/models/dataset.rb
Expand Up @@ -33,8 +33,7 @@ class Dataset < ActiveRecord::Base
acts_as_authorization_object :subject_class_name => 'User'
acts_as_taggable

has_attached_file :generated_spreadsheet,
:path => ":rails_root/files/:id_generated-download.xls"
has_attached_file :generated_spreadsheet, :path => ":rails_root/files/generated/:id_generated-download.xls"

has_many :datafiles, :class_name => "Datafile", :order => 'id DESC', :dependent => :destroy
has_one :current_datafile, :class_name => "Datafile", :order => 'id DESC'
Expand Down
5 changes: 1 addition & 4 deletions app/models/freeformat.rb
Expand Up @@ -7,10 +7,7 @@ class Freeformat < ActiveRecord::Base
validates_presence_of :file_file_name, :message => "You have to select a file to be uploaded."
validates_presence_of :freeformattable, :message => "Freeformat must belong to something"

has_attached_file :file,
:basename => "basename",
:path => ":rails_root/files/freeformats/:id_:filename",
:url => "/files/freeformats/:id/download"
has_attached_file :file, :basename => "basename", :path => ":rails_root/files/freeformats/:id_:filename"

def basename
return File.basename(self.file.original_filename, File.extname(self.file.original_filename))
Expand Down
29 changes: 29 additions & 0 deletions db/migrate/20131111135126_separate_uploaded_and_generated_files.rb
@@ -0,0 +1,29 @@
class SeparateUploadedAndGeneratedFiles < ActiveRecord::Migration
def up
uploaded_dir, generated_dir = %w{uploaded generated}.collect { |d| File.join(Rails.root, 'files', d) }

[uploaded_dir, generated_dir].each do |dir|
FileUtils.mkdir_p dir unless File.directory? dir
end

Datafile.has_attached_file :file, :basename => "basename", :path => ":rails_root/files/:id_:filename"
Dataset.has_attached_file :generated_spreadsheet, :path => ":rails_root/files/:id_generated-download.xls"

Datafile.where('file_file_name is not NULL and dataset_id is not NULL').find_each do |df|
FileUtils.mv df.file.path, File.join(uploaded_dir, File.basename(df.file.path)) if File.file? df.file.path
end

Dataset.where('generated_spreadsheet_file_name is not NULL').find_each do |dt|
original_path = dt.generated_spreadsheet.path
FileUtils.mv original_path, File.join(generated_dir, File.basename(original_path)) if File.file? original_path
end
end

def down
files_dir = File.join(Rails.root, 'files')

%w{uploaded generated}.each do |dir|
FileUtils.mv Dir.glob(File.join(files_dir, dir, '*.*')), files_dir
end
end
end
2 changes: 1 addition & 1 deletion db/schema.rb
Expand Up @@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.

ActiveRecord::Schema.define(:version => 20131031162226) do
ActiveRecord::Schema.define(:version => 20131111135126) do

create_table "author_paperproposals", :force => true do |t|
t.integer "paperproposal_id"
Expand Down

0 comments on commit 80612cc

Please sign in to comment.