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>
|
||||
|
|
Reference in New Issue