Ruby on Rails Wednesday, December 3, 2014

Hi spncrgr :D

I am trying to do something similar...Is there a possibility that you have this project on Github? (or somewhere, where i can view the code?)

Thank you in advance

George.

On Tuesday, 7 December 2010 22:53:25 UTC+2, spncrgr wrote:
I was finally able to get this to work.  I ditched Paperclip and went
with putting the code in the controller.  Taking it in baby steps, I
was able to work out this code for the controller:

def upload
    ((params[:upload][:file]).read).strip.split("\r\n").each do |line|
      email, account_number, sub_number, eid, premium_code, keycode,
order_date, description = line.split("\t")

      new_record = MailingList.new(:email => email, :account_number =>
account_number, :sub_number => sub_number,
                                    :eid => eid, :premium_code =>
premium_code, :keycode => keycode,
                                    :order_date =>
order_date, :description => description)
      new_record.save
    end

    redirect_to :action => index
  end

Thanks again to everyone.  Ultimately it was all of your replies that
helped me piece it together.

Thanks!
Spencer

On Dec 7, 10:11 am, Walter Lee Davis <wa...@wdstudio.com> wrote:
> On Dec 6, 2010, at 6:50 PM, David Kahn wrote:
>
> > You are mistaken, and although I came late to the Paperclip party, I  
> > can't recall a time when it was true. You can edit the model without  
> > modifying the image (just don't upload another image) and everything  
> > stays the same in the image, or you can upload a new image and it  
> > will overwrite the previous version. It's all managed when you save  
> > the model that the image is attached to.
>
> > Right, but what I wanted was to be able to load a model instance,  
> > change the file (say I encrypt a portion of the text) and have  
> > Paperclip update that file on its own when I call model#save. I am  
> > pretty sure Paperclip does not do this. Right, you can re-save the  
> > file but it requires manual action beyond calling model#save.
>
> If you code your transformation within a Paperclip Processor, you can  
> have any number of different transformed versions. Here's one that  
> extracts the text from an uploaded PDF:
>
> #lib/paperclip_processors/text.rb
> module Paperclip
>    # Handles extracting plain text from PDF file attachments
>    class Text < Processor
>
>      attr_accessor :whiny
>
>      # Creates a Text extract from PDF
>      def make
>        src = @file
>        dst = Tempfile.new([@basename, 'txt'].compact.join("."))
>        command = <<-end_command
>          "#{ File.expand_path(src.path) }"
>          "#{ File.expand_path(dst.path) }"
>        end_command
>
>        begin
>          success = Paperclip.run("/usr/bin/pdftotext -nopgbrk",  
> command.gsub(/\s+/, " "))
>          Rails.logger.info "Processing #{src.path} to #{dst.path} in  
> the text processor."
>        rescue PaperclipCommandLineError
>          raise PaperclipError, "There was an error processing the text  
> for #{@basename}" if @whiny
>        end
>        dst
>      end
>    end
> end
>
> You call it from your model, like this:
>
> #app/models/document.rb
> ...
>    has_attached_file :pdf,:styles => { :text => { :fake =>  
> 'variable' } }, :processors => [:text]
> ...
>
> The :fake => 'variable' part is just in there to get the offset  
> correct for the processors variable. I am not sure if it's still  
> needed, but I have been doing it this way since early this summer.
>
> Later, you can access that version of the file as you would any other  
> paperclip-attached model attribute. In this example, this might look  
> like document.pdf.url(:text). Your untouched original will always be  
> at document.pdf.url(:original).
>
> Walter

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/c33f091f-69ff-4c98-b66e-d6f72f01c081%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment