Objects in Arrays? Allowed, right?


#1

Hi:

I’m trying to manually append objects to an instance variable that is
just an array of objects. Here’s my controller code:

@tasks = Task.find(:all, :conditions => “entity_id =
#{session[:user].id}”)
for t in @tasks
if Subtasks.find(:first, :conditions => “child_id = #{t.id}”) != nil
@mtasks << t
end
end

However, when I execute, I get an error:

You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<

Am i incorrectly referencing the object “t”? I haven’t previously
declared or used “mtasks”.

Any help you could provide would be greatly appreciated.

Thanks!

Mike


#2

On 2/12/07, Mike D. removed_email_address@domain.invalid wrote:

@mtasks << t

declared or used “mtasks”.

Looks like a typo: “@tasks” vs. “@mtasks”.

Chad


#3

You didn’t initialize the @mtasks as an array. Try this:

@tasks = Task.find(:all, :conditions => “entity_id =
#{session[:user].id}”)
@mtasks = Array.new()
for t in @tasks
if Subtasks.find(:first, :conditions => “child_id = #{t.id}”) !=
nil
@mtasks << t
end
end

On 12 Feb., 15:28, Mike D. removed_email_address@domain.invalid