CarrierWave workaround: the files have to be saved manually
This commit is contained in:
		
							parent
							
								
									f73f09ffcf
								
							
						
					
					
						commit
						c3ada90365
					
				| 
						 | 
				
			
			@ -4,3 +4,6 @@ db/*.sqlite3
 | 
			
		|||
log/*.log
 | 
			
		||||
tmp/**/*
 | 
			
		||||
public/uploads/**/*
 | 
			
		||||
uploads/**/*
 | 
			
		||||
 | 
			
		||||
.DS_Store
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,11 +6,7 @@ class Admin::DesignsController < ApplicationController
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def new
 | 
			
		||||
    @designs = Design.new
 | 
			
		||||
    @designs.stylesheets.build
 | 
			
		||||
    @designs.javascripts.build
 | 
			
		||||
    @designs.images.build
 | 
			
		||||
 | 
			
		||||
    @design = Design.new
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def update
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +28,6 @@ class Admin::DesignsController < ApplicationController
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
    debugger
 | 
			
		||||
    @design = Design.new(params[:design])
 | 
			
		||||
    if @design.save
 | 
			
		||||
        flash[:notice] = "Successfully created design and tasks."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,55 +17,38 @@ class Design
 | 
			
		|||
  embeds_many :javascripts
 | 
			
		||||
  embeds_many :images
 | 
			
		||||
 | 
			
		||||
  after_update :destroy_attrs
 | 
			
		||||
  after_save :save_embedded_objects
 | 
			
		||||
  
 | 
			
		||||
  def javascripts=(*attrs)
 | 
			
		||||
    self.attribute_models=(attrs<<'javascripts')
 | 
			
		||||
    self.files = (attrs << 'javascripts')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  def stylesheets=(*attrs)
 | 
			
		||||
    self.attribute_models=(attrs<<'stylesheets')
 | 
			
		||||
    self.files = (attrs << 'stylesheets')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  def images=(*attrs)
 | 
			
		||||
    self.attribute_models=(attrs<<'images')
 | 
			
		||||
    self.files = (attrs << 'images')
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  # Update or create the attribute_model records
 | 
			
		||||
  def attribute_models=(attrs)
 | 
			
		||||
      #attribute_models = eval(attributes[:type])
 | 
			
		||||
     # if attributes.original_filename.blank?
 | 
			
		||||
      attribute_models=eval(attrs.last)
 | 
			
		||||
      a=attribute_models.build()
 | 
			
		||||
      a.file=attrs[0]
 | 
			
		||||
     # else
 | 
			
		||||
     #   attribute_model = attribute_models.detect {|a| a.id.to_s == attributes[:id].to_s }
 | 
			
		||||
     #   attribute_model.update_attributes(attributes)
 | 
			
		||||
    #end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def is_built_in?
 | 
			
		||||
    self.built_in
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def is_disabled?
 | 
			
		||||
    self.disabled
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def get_enabled_attribute_models
 | 
			
		||||
    self.attribute_models.excludes('disabled' => true)
 | 
			
		||||
  def files=(attrs)
 | 
			
		||||
    files = eval(attrs.last)
 | 
			
		||||
    attrs[0].each do |a|
 | 
			
		||||
      files.build(:file => a[:file], :to_save => true)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  protected
 | 
			
		||||
  
 | 
			
		||||
  # Destroy the i18n_variable for each attribute_models if marked to destroy
 | 
			
		||||
  def destroy_attrs
 | 
			
		||||
=begin
 | 
			
		||||
    attribute_models.each do |a|
 | 
			
		||||
      if a.should_destroy?
 | 
			
		||||
         a.destroy_i18n_variable
 | 
			
		||||
  def save_embedded_objects
 | 
			
		||||
    [self.stylesheets, self.javascripts, self.images].each do |objects|
 | 
			
		||||
      objects.each do |object|
 | 
			
		||||
        if object.to_save
 | 
			
		||||
          object.to_save = false
 | 
			
		||||
          object.save
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
=end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,5 +2,7 @@ class DesignFile
 | 
			
		|||
  include Mongoid::Document
 | 
			
		||||
 | 
			
		||||
  mount_uploader :file, AssetUploader
 | 
			
		||||
  
 | 
			
		||||
  field :to_save, :type => Boolean
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,3 @@
 | 
			
		|||
class Image<DesignFile
 | 
			
		||||
 | 
			
		||||
class Image < DesignFile
 | 
			
		||||
  embedded_in :design
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,3 @@
 | 
			
		|||
class Javascript<DesignFile
 | 
			
		||||
 | 
			
		||||
class Javascript < DesignFile
 | 
			
		||||
  embedded_in :design
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,3 @@
 | 
			
		|||
class Stylesheet < DesignFile
 | 
			
		||||
  mount_uploader :file, AssetUploader
 | 
			
		||||
 | 
			
		||||
  embedded_in :design
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@
 | 
			
		|||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label "layout", t('admin.layout') %>
 | 
			
		||||
<%  if @design.nil? %>
 | 
			
		||||
<%  if @design.layout.blank? %>
 | 
			
		||||
    <%= f.file_field :layout %>
 | 
			
		||||
  <% else%>
 | 
			
		||||
    <%= File.basename (Design.all.last.layout.url)  %>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,17 +25,21 @@
 | 
			
		|||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label "stylesheet", t('admin.stylesheet') %>
 | 
			
		||||
<%= fields_for 'design[stylesheets]' do |f| %>
 | 
			
		||||
  <%= f.file_field :file %>
 | 
			
		||||
<% end%>
 | 
			
		||||
<%= fields_for "design[stylesheets][]", @design, :index => nil do |f| %>
 | 
			
		||||
	<%= f.file_field :file %>
 | 
			
		||||
<% end %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label "javascript", t('admin.') %>
 | 
			
		||||
<%= f.file_field :javaascripts %>
 | 
			
		||||
<%= fields_for "design[javascripts][]", @design, :index => nil do |f| %>
 | 
			
		||||
	<%= f.file_field :file %>
 | 
			
		||||
<% end %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
<%= f.label "image", t('admin.') %>
 | 
			
		||||
<%= f.file_field :images %>
 | 
			
		||||
<%= fields_for "design[images][]", @design, :index => nil do |f| %>
 | 
			
		||||
	<%= f.file_field :file %>
 | 
			
		||||
<% end %>
 | 
			
		||||
</p>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue