On Mar 12, 1:58 pm, Luke <kickingje...@gmail.com> wrote: > That was the problem, thanks a lot! I changed it to > > @upload = Upload.new > @upload.file = params[:file] > @upload.save! > @article.uploads << @upload > > works like a charm. @upload.file = params[:file] works because I'm using > carrierwave to manage uploads. > > However, I'm wondering how you have to write your constructor to be able to > pass the file when instantiating the model. I mean like this: > > @upload = Upload.create(params[:file]) > You have to pass a hash of attribute names to values to create - you can't just pass a value. Files are just like any other attribute - you can't for example do Person.create(params[:name]), you have to do Person.create(:name => params[:name]). In the same way you would do foo.uploads.create :file => params[:file]
Fred -- 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 rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.