On Sun, Apr 4, 2010 at 12:24 AM, Conrad Taylor <[email protected]> wrote:
> On Sat, Apr 3, 2010 at 7:05 PM, David Zhu <[email protected]>wrote: > >> I'm getting this error- >> >> ActiveRecord::RecordNotFound in PagesController#create >> >> Couldn't find Course without an ID >> >> >> ------ >> >> Btw, the pages belongs to courses, and the courses has many pages >> >> Now, in my pages controller, for my create action, i have this-- >> >> def create >> >> @course = Course.find(params[:id]) >> @page = @course.pages.build(params[:page]) >> >> .... if and else stuff.... >> >> end >> >> >> >> Whats wrong? Why am i getting this message? Thanks, i really need help! >> >> > David, you're assuming that the first line in the method is successful > after > execution. Thus, I would recommend doing something like the following: > > def create > > @course = Course.find( params[:id] ) # The exception is thrown here. > @page = @course.pages.build( params[:page] ) > > if @page.save > flash[:notice] = "Successfully created page." > redirect_to course_url( @page.course_id ) > else > render :action => 'new' > end > > rescue ActiveRecord::RecordNotFound => exception # The thrown exception > is caught and dealt with here. > logger.error( "Error: #{exception.message}" > flash[:error] = "#{exception.message}" > render :action => 'new' > end > > Next, you can test exception handling in the IRB by doing something as > simple as the following: > > > def my_exceptional_method; Post.find( 2000 ); rescue > ActiveRecord::RecordNotFound => exception; puts exception.message; end > Correction, the above line should be the following: > def my_exceptional_method; Course.find( 2000 ); rescue ActiveRecord::RecordNotFound => exception; puts exception.message; end Good luck, -Conrad > > my_exceptional_method > > Lastly, I would recommend reading the relevant sections of "AWDwRails 3ed" > by Dave Thomas et al. > > Good luck, > > -Conrad > > >> -- >> >> 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]<rubyonrails-talk%[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.

