Error in runtime controller#view

m getting an error “Called id for nil, which would mistakenly be 4 – if
you really wanted the id of nil, use object_id”

when i’m creating new record,like a topic has many discussions,when i’m
creating a new discussions m getting that error…i already assign the
topic id as foreign key in discussions controller…please sort out
this problem.if u getting the same…how you rectify those errors…and in
how many cases this errors are prone to occur???

On Wed, Jul 4, 2012 at 12:23 AM, rocky [email protected] wrote:

m getting an error “Called id for nil, which would mistakenly be 4 – if you
really wanted the id of nil, use object_id”

when i’m creating new record,like a topic has many discussions,when i’m creating
a new discussions m getting that error…i already assign the topic id as foreign
key in discussions controller…please sort out this problem.if u getting the
same…how you rectify those errors…and in how many cases this errors are prone to
occur???

We need more information to help you , can you post part of the relevant
code?

On 4 July 2012 07:14, Abhishek S. [email protected] wrote:

private
def find_subject
if params[:subject_id]
@subject = Subject.find_by_id(params[:subject_id])
end
end

end

You’re calling find_subject on a before_filter, and it may or may not
populate a @subject object depending on whether there’s a param value.

But your action then goes on to expect there to definitely be an
@subject instance variable. Put a breakpoint in find_subject, and see
what the parameter values are.

On 4 July 2012 05:23, rocky [email protected] wrote:

m getting an error “Called id for nil, which would mistakenly be 4 – if you
really wanted the id of nil, use object_id”

when i’m creating new record,like a topic has many discussions,when i’m
creating a new discussions m getting that error…i already assign the topic
id as foreign key in discussions controller…please sort out this
problem.if u getting the same…how you rectify those errors…and in how many
cases this errors are prone to occur???

This means that you have some code some_object.id where some_object is
nil. The error message should tell you which line is failing. Have a
look at the Rails Guide on debugging for ideas on how to debug your
code to find the problem.

Colin

subjects has many pages
subject controller code::

class SubjectController < ApplicationController

def list
@subjects = Subject.order(“subjects.position ASC”)
end

def show
@subject = Subject.find(params[:id])
end

def new
@subject = Subject.new(:visible => ‘false’)
@subject_count = Subject.count + 1
end

def create
@subject = Subject.new(params[:subject])
if @subject.save
redirect_to(:action => ‘list’)
else
render(‘new’)
end
end
end

page controller code::

class PageController < ApplicationController

before_filter :find_subject

def index
list
render(‘list’)
end

def list
@pages = Page.where(:subject_id => @subject.id)
end

def show
@page = Page.find(params[:id])
end

def new
@page = Page.new(:subject_id => @subject.id)
@page_count = @subject.pages.size + 1
@subjects = Subject.order(‘position ASC’)
end

def create
@page = Page.new(params[:page])
if @page.save
redirect_to(:action => ‘list’, :subject_id => @page.subject_id)
else
render(‘new’)
end
end

private

def find_subject
if params[:subject_id]
@subject = Subject.find_by_id(params[:subject_id])
end
end

end

this is my controller code and when m creating new page m getting dat
error…