[Rails] Okay, what gives? find_by_id is failing.

David Johnson johnson_d at cox.net
Sat Apr 1 04:49:53 GMT 2006


This has the look of a "just don't quite get it yet" problem.  I am
using the ActiveRecord.find_by_id method to identify the parent object
(Quiz) to tie to the child object (Question) at create time.

Here is the stdout log:

127.0.0.1 - - [31/Mar/2006:22:43:22 CST] "GET /question/new?
parent_quiz=ff2d7022-be0a-11da-9f01-00400506faf5 HTTP/1.1" 200 806
http://localhost:3000/questions?parent_quiz=ff2d7022-
be0a-11da-9f01-00400506faf5 -> /question/new?parent_quiz=ff2d7022-
be0a-11da-9f01-00400506faf5

------------------------------
Parent           = nil

------------------------------
Parent should be = ff2d7022-be0a-11da-9f01-00400506faf5


127.0.0.1 - - [31/Mar/2006:22:43:23 CST] "POST /question/create
HTTP/1.1" 500 7042
http://localhost:3000/question/new?parent_quiz=ff2d7022-
be0a-11da-9f01-00400506faf5 -> /question/create



Here is the code for question:

class Question < ActiveRecord::Base
  require 'presentations'
  require  'question'

  include UUIDHelper
  
  has_many :answers, :order => :seq
  belongs_to :presentation, :class_name => "Presentations", :foreign_key
=> :presentation_id
  belongs_to :parent, :class_name => "Quiz"
  acts_as_list :scope => :parent_id, :column => :seq
  
end



Here is the code for question_controller:

 def create
# changed because we are instantiating the presentations here
# may not be needed if we instantiate presentations in the initialize,
# but that will require thinking because we already have a use for
# the initialize method.
    @question = Question.new
    aParent = Quiz.find_by_id(params[:parent_quiz])
STDOUT.print("\r\n------------------------------\r\n")
STDOUT.print("Parent           = ",aParent,"\r\n")
    @question.parent = aParent

    @question.presentation = Presentations.new
    @question.presentation.textvalue = @params
[:question][:presentation][:textvalue]

STDOUT.print("\r\n------------------------------\r\n")
STDOUT.print("Parent should be = ",params[:parent_quiz],"\r\n")

-- *** Blows up here ***
STDOUT.print("Parent           = ", at question.parent.id.to_str,"\r\n")

    if @question.presentation.save && @question.save
      flash[:notice] = 'Question was successfully created.'
      redirect_to :action => 'list', :parent_quiz => params
[:parent_quiz], :question => params[:question]
    else
      render :action => 'new'
    end
  end





More information about the Rails mailing list