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.


Reply via email to