I supposed it was obvious... ; ) Seriously, line 45 is in the update function:
40 def update 41 @lead = Lead.find_by_id( params[:id] ) 42 43 upload 44 45 if @lead.update_attributes!(params[:lead]) 46 flash[:success] = "Leaderboard successfully updated." 47 redirect_to @lead 48 else 49 render action: "edit" 50 end 51 end Le jeudi 6 décembre 2012 11:05:59 UTC+1, Colin Law a écrit : > > On 6 December 2012 09:43, Jean-David <[email protected] <javascript:>> > 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]. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/2BLMiT0jbA8J. For more options, visit https://groups.google.com/groups/opt_out.

