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
|
log/*.log
|
||||||
tmp/**/*
|
tmp/**/*
|
||||||
public/uploads/**/*
|
public/uploads/**/*
|
||||||
|
uploads/**/*
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
|
|
@ -6,11 +6,7 @@ class Admin::DesignsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@designs = Design.new
|
@design = Design.new
|
||||||
@designs.stylesheets.build
|
|
||||||
@designs.javascripts.build
|
|
||||||
@designs.images.build
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
@ -32,7 +28,6 @@ class Admin::DesignsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
debugger
|
|
||||||
@design = Design.new(params[:design])
|
@design = Design.new(params[:design])
|
||||||
if @design.save
|
if @design.save
|
||||||
flash[:notice] = "Successfully created design and tasks."
|
flash[:notice] = "Successfully created design and tasks."
|
||||||
|
|
|
@ -17,55 +17,38 @@ class Design
|
||||||
embeds_many :javascripts
|
embeds_many :javascripts
|
||||||
embeds_many :images
|
embeds_many :images
|
||||||
|
|
||||||
after_update :destroy_attrs
|
after_save :save_embedded_objects
|
||||||
|
|
||||||
def javascripts=(*attrs)
|
def javascripts=(*attrs)
|
||||||
self.attribute_models=(attrs<<'javascripts')
|
self.files = (attrs << 'javascripts')
|
||||||
end
|
end
|
||||||
|
|
||||||
def stylesheets=(*attrs)
|
def stylesheets=(*attrs)
|
||||||
self.attribute_models=(attrs<<'stylesheets')
|
self.files = (attrs << 'stylesheets')
|
||||||
end
|
end
|
||||||
|
|
||||||
def images=(*attrs)
|
def images=(*attrs)
|
||||||
self.attribute_models=(attrs<<'images')
|
self.files = (attrs << 'images')
|
||||||
end
|
end
|
||||||
|
|
||||||
# Update or create the attribute_model records
|
# Update or create the attribute_model records
|
||||||
def attribute_models=(attrs)
|
def files=(attrs)
|
||||||
#attribute_models = eval(attributes[:type])
|
files = eval(attrs.last)
|
||||||
# if attributes.original_filename.blank?
|
attrs[0].each do |a|
|
||||||
attribute_models=eval(attrs.last)
|
files.build(:file => a[:file], :to_save => true)
|
||||||
a=attribute_models.build()
|
end
|
||||||
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)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
# Destroy the i18n_variable for each attribute_models if marked to destroy
|
def save_embedded_objects
|
||||||
def destroy_attrs
|
[self.stylesheets, self.javascripts, self.images].each do |objects|
|
||||||
=begin
|
objects.each do |object|
|
||||||
attribute_models.each do |a|
|
if object.to_save
|
||||||
if a.should_destroy?
|
object.to_save = false
|
||||||
a.destroy_i18n_variable
|
object.save
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
=end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,4 +3,6 @@ class DesignFile
|
||||||
|
|
||||||
mount_uploader :file, AssetUploader
|
mount_uploader :file, AssetUploader
|
||||||
|
|
||||||
|
field :to_save, :type => Boolean
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
class Image<DesignFile
|
class Image < DesignFile
|
||||||
|
embedded_in :design
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
class Javascript<DesignFile
|
class Javascript < DesignFile
|
||||||
|
embedded_in :design
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
class Stylesheet < DesignFile
|
class Stylesheet < DesignFile
|
||||||
mount_uploader :file, AssetUploader
|
|
||||||
|
|
||||||
embedded_in :design
|
embedded_in :design
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= f.label "layout", t('admin.layout') %>
|
<%= f.label "layout", t('admin.layout') %>
|
||||||
<% if @design.nil? %>
|
<% if @design.layout.blank? %>
|
||||||
<%= f.file_field :layout %>
|
<%= f.file_field :layout %>
|
||||||
<% else%>
|
<% else%>
|
||||||
<%= File.basename (Design.all.last.layout.url) %>
|
<%= File.basename (Design.all.last.layout.url) %>
|
||||||
|
@ -25,17 +25,21 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= f.label "stylesheet", t('admin.stylesheet') %>
|
<%= f.label "stylesheet", t('admin.stylesheet') %>
|
||||||
<%= fields_for 'design[stylesheets]' do |f| %>
|
<%= fields_for "design[stylesheets][]", @design, :index => nil do |f| %>
|
||||||
<%= f.file_field :file %>
|
<%= f.file_field :file %>
|
||||||
<% end%>
|
<% end %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= f.label "javascript", t('admin.') %>
|
<%= 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>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= f.label "image", t('admin.') %>
|
<%= f.label "image", t('admin.') %>
|
||||||
<%= f.file_field :images %>
|
<%= fields_for "design[images][]", @design, :index => nil do |f| %>
|
||||||
|
<%= f.file_field :file %>
|
||||||
|
<% end %>
|
||||||
</p>
|
</p>
|
||||||
|
|
Reference in New Issue