On May 18, 2010, at 11:41 AM, Ruby on Rails: Talk wrote: > Hi > > I solved it ... but have no idea why! > > Needed to change: > > self.file = data > > to > > self.photo = data > > And it works ... hmmmm ... >
Because your Photo model "has_attached_file :photo, ..." *NOT* "has_attached_file :file, ..." -philip > 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. > -- 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.

