Definitely give it a shot. I use it for my projects from the early
stages. Carrierwave is good for me, recommend!

Pavel

On Jun 29, 5:05 am, Eleo <[email protected]> wrote:
> Damn, I'd never heard of CarrierWave. I've been using my own solutions
> for years now.  I guess this is the type of thing I should have
> searched for at some point, but it just never dawned on me since every
> time I started a project that required file uploads, I copied, pasted,
> and adjusted code from one of my other projects.  I do everything the
> bootleg way.  I guess I'll look into this.
>
> On Jun 26, 7:54 pm, Jonas Nicklas <[email protected]> wrote:
>
>
>
> > Having written two file upload plugins, believe me when I say: that
> > shit is much harder than it looks. There are so many ways to screw
> > this up, it's not even funny. Unless you have really, really specific
> > requirements you're probably better off using an existing solution.
> > I'm not impartial here but: CarrierWave should work on Merb pretty
> > much out of the box. I haven't used Merb in a while, but I know Pavel
> > uses CarrierWave with Merb successfully. Check it 
> > out:http://github.com/jnicklas/carrierwave
>
> > /Jonas
>
> > On Fri, Jun 25, 2010 at 2:47 AM, kg <[email protected]> wrote:
> > > I'm implementing a file upload form.  It work but its a little bit
> > > glitchy.  For example, when the file upload it writes the the database
> > > twice.  The second time it writes its a null record.  I can see why
> > > but I'm not exactly sure how to work around this.  Any suggestions?
>
> > > #new.html.haml
> > > = error_messages_for @attachment
>
> > > = form_for(:attachment, :action=>'create') do #...@attachment, :action =>
> > > url(:attachment, :create)) do
> > >  %p
> > >    = file_field :attachment, :label => "File"
> > >    = submit "Create"
>
> > > #models/attachment.rb
> > > require 'uploads_helper'
> > > class Attachment
> > >  include DataMapper::Resource
> > >  include Attachable
>
> > >  property :id, Serial
> > >  property :filename, String
> > >  property :content_type, String
> > >  property :size, Integer
> > >  property :attachable_id, Integer
> > >  property :attachable_type, String
> > >  property :description, Text
> > >  property :location, String
> > >  has n, :attachment_tags
> > >  has n, :tags, :through => :attachment_tags
> > >  def url
> > >    "/uploads/#{self.id}/#{self.filename}"
> > >  end
>
> > > end
>
> > > #helper/uploads_helper.rb
> > > require 'ftools'
> > > module Attachable
> > >  include FileUtils
> > >  def attachments
> > >   �...@attachments = Attachment.all(:attachable_type =>
> > > self.class, :attachable_id => self.id)
> > >  end
> > >  def attachment
> > >   �...@attachment
> > >  end
> > >  def attachment=(value)
> > >   �...@attachment = value
> > >    unless value.empty?
> > >      puts "creating file"
> > >      attachment = Attachment.create( :attachable_type => self.class,
> > >                                      :attachable_id => self.id,
> > >                                      :filename =>
> > > @attachment[:filename],
> > >                                      :content_type =>
> > > @attachment[:content_type],
> > >                                      :size => @attachment[:size]
> > >      )
> > >      begin
> > >        File.makedirs("public/uploads/#{attachment.id}")
> > >        mv(@attachment[:tempfile].path, "public/uploads/
> > > #{attachment.id}/#{attachment.filename}")
> > >      rescue
> > >        #rescue stuff
> > >      end
> > >    end
> > >    debugger
> > >   �...@attachment
> > >  end
> > >  protected
>
> > >  # Partition the path according to the ida
> > >  def partitioned_path(id)
> > > #    *("%06d" % id).scan(/.../)
> > >  end
>
> > > end
>
> > > #controllers/attachment.rb
> > > .
> > > .
> > > .
> > >  def create(attachment)
> > >   �...@attachment = Attachment.new(attachment)  #enters module - saves
> > > file and writes to db
> > >    if @attachment.save  # writes empty record to db
> > >      redirect resource(@attachment), :message => {:notice =>
> > > "Attachment was successfully created"}
> > >    else
> > >      message[:error] = "Attachment failed to be created"
> > >      render :new
> > >    end
> > >  end
> > > .
> > > .
> > > .
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "merb" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected].
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/merb?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"merb" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/merb?hl=en.

Reply via email to