Hello,
I''m trying to create categories that have their own subcategories, and
each
subcategory may have its own subcategories, .. and so on.
After some reading, I found out that the best way for creating such a thing
is to use acts_as_tree, but I didn''t find any tutorial or article that
explain this in a clear way. After a lot of work I was finally able to
create categories and subcategories using the following code explained in
(Agile Web Development With Rails) book:
----------------------------------------------------------------
root = Category.create(:name => "Books")
fiction = root.children.create(:name => "Fiction")
non_fiction = root.children.create(:name => "Non Fiction")
non_fiction.children.create(:name => "Computers")
non_fiction.children.create(:name => "Science")
non_fiction.children.create(:name => "Art History")
fiction.children.create(:name => "Mystery")
fiction.children.create(:name => "Romance")
fiction.children.create(:name => "Science Fiction")
------------------------------------------------------------------
And here is the database scheme:
------------------------------------------------------------
create table categories (
id int not null auto_increment,
name varchar(100) not null,
parent_id int,
constraint fk_category foreign key (parent_id) references categories(id),
primary key (id)
);
------------------------------------------------------------
in the model:
------------------------------------------------------------
class Category < ActiveRecord::Base
acts_as_tree :order => "name"
end
------------------------------------------------------
OK, my problem now is how to view something! Any category name, or any
subcategory or a list of categories, I tried a lot of things, like (in the
view):
---------------------------------------------------------
<ul>
<% for category in @categories %>
<li><%= link_to h(category.title), :action =>
''edit'', :id => category %>
<%= find_all_subcategories(category) %>
</li>
<% end %>
</ul>
----------------------------------------------------------
But I ALWAYS and whatever I try I got this error message:
"You have a nil object when you didn''t expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.each
Extracted source (around line #2): <% for category in @categories %>
"
What do you think the problem is?
If you know some tutorial that fully explain how to use acts_as_tree to add
and show categories that''ll be great
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://wrath.rubyonrails.org/pipermail/rails/attachments/20060720/fb37e69d/attachment.html