On 6 December 2012 09:43, Jean-David <[email protected]> wrote: > NOOB ALERT > > Now I warned you, here's the problem that's been getting me mad for hours > > I've got a model for content I'm calling "lead". It has a title, a text and > an image used as a background. > > I'm not using paperclip or CarrierWave to handle the image file (and I don't > want to, one of my needs here is to learn how this all works). > I'm using this function to upload the file (it comes directly from the rails > guides) : > > def upload > if params[:lead][:illustration] > uploaded_io = params[:lead][:illustration] > > File.open(Rails.root.join('app', 'assets', 'images', > uploaded_io.original_filename), 'wb') do |file| > file.write(uploaded_io.read) > end > > @lead.illustration = "#{uploaded_io.original_filename}" > end > end > > When creating a "lead", everything goes fine with create: > > def create > @lead = Lead.new( params[:lead] ) > > upload > > if @lead.save > flash[:success] = "Lead successfully added." > redirect_to @lead > else > redirect_to root_path > end > end > > The "lead" gets saved, I can use it. So far, so good. > > > Now with the problem (remember the NOOB ALERT). > Updating a lead without modifying the image goes fine, but updating with a > new image returns this error: > > > NoMethodError in LeadsController#update > > undefined method `name' for nil:NilClass > > and > > app/controllers/leads_controller.rb:45:in `update'
The error says that you are calling method 'name' for something that is nil at line 45 in leads_controller.rb. > > > Here's my update function: > > def update > @lead = Lead.find_by_id( params[:id] ) > > upload > > if @lead.update_attributes!(params[:lead]) > flash[:success] = "Leaderboard successfully updated." > redirect_to @lead > else > render action: "edit" > end > end > > Basically the same as create. I've been googling and going back and forth > for hours and I didn't get to solve this. Any help would be more than > welcome. Unfortunately you have not told us which is line 45. Colin -- 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 https://groups.google.com/groups/opt_out.

