Hi I solved it ... but have no idea why!
Needed to change: self.file = data to self.photo = data And it works ... hmmmm ... On May 18, 7:10 pm, "Ruby on Rails: Talk" <[email protected]> wrote: > Hi > > I'm sure this is in the wrong group - so any suggestions for a right > group would be great! And you have my express permission to treat me > like an idiot in replies! I have a fair amount of knowledge ... > but ... obviously not enough to understand this past the basics! > > I have two problems ... but only going to list one for now ... > > I'm trying to use the Jim Neath code and examples with swfupload and > not having much success. > > I'm using Rails 2.3.5 if that's any use. > > I've already had to do this in my PhotosController: > > skip_before_filter :verify_authenticity_token, :only => :create > > just to get the app to ignore {play nicely?) with the > InvalidAuthenticityToken problems! And I promise I've read EVERY post > there is on the problem from Google and beyond. I've changed more code > try to solve the InvalidAuthenticityToken than I think Microsoft have > ever produced ... and still no help. More on this in another post ... > > But back to my problem: > > I have this as part of my photo controller code: > > def create > if params[:Filedata] > @photo = TripPhoto.new(:swfupload_file => params[:Filedata]) > if @photo.save > render :partial => 'photo', :object => @photo > else > render :text => "error" > end > else ... [rest omitted] > > The data is being passed to the controller I think from the log ... > > Processing TripPhotosController#create (for 127.0.0.1 at 2010-05-17 > 21:24:26) [POST] > Parameters: {"Filename"=>"SYTS Logo Colour - All Red.png", > "trip_id"=>"3", "action"=>"create", "authenticity_token"=>"[Omitted]", > "Upload"=>"Submit Query", "controller"=>"trip_photos", > "_worldtripper_session"=>"[Omitted]", "Filedata"=>#<File:/tmp/ > RackMultipart20100517-44821-hoknr8-0>} > > But I get the following error ... > > NoMethodError (undefined method `file=' for #<TripPhoto:0x103d99410>): > app/models/trip_photo.rb:13:in `swfupload_file=' > > I have inserted (as per Jim's instructions) the following into my > TripPhoto Class... > > require 'mime/types' > > class TripPhoto < ActiveRecord::Base > > belongs_to :trip > has_attached_file :photo, :styles => { :small => "150x150>", :large > => "320x240>" } > validates_attachment_presence :photo > validates_attachment_size :photo, :less_than => 5.megabytes > > def swfupload_file=(data) > data.content_type = > MIME::Types.type_for(data.original_filename).first.content_type > logger.warn("Data content type is: #{data.content_type}") > self.file = data > end > > end > > So I have a feeling it has something to do with the line: > > self.file = data > > But I really have NO IDEA what is wrong! I've spent days on this and > it's not through lack of trying ... > > So any help please would be fabulous! > > Thanks > > Darren > > Oh ... BTW ... > > If I make the line > > @photo = TripPhoto.new(params[:Filedata]) > > ... I end up with the following error: > > NoMethodError (undefined method `stringify_keys!' for #<File:/tmp/ > RackMultipart20100517-44821-hoknr8-0>): > app/controllers/trip_photos_controller.rb:20:in `new' > > Which makes even less sense ... > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" 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/rubyonrails-talk?hl=en. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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/rubyonrails-talk?hl=en.

