Thread View: pl.comp.lang.ruby
13 messages
13 total messages
Started by zbyszek.malec@gm
Mon, 16 Feb 2009 11:48
ActiveRecord + drzewo
Author: zbyszek.malec@gm
Date: Mon, 16 Feb 2009 11:48
Date: Mon, 16 Feb 2009 11:48
47 lines
1171 bytes
1171 bytes
Witam U¿ywam RoR i ActiveRecords od niedawna, wiêc nie mam jeszcze zbyt du¿ego do¶wiadczenia. Byæ mo¿e pytanie jest banalne, ale nie znalaz³em na nie odpowiedzi samodzielnie, wiêc pytam tutaj. Mam tak± migracjê: class CreateCategories < ActiveRecord::Migration def self.up create_table :categories do |t| t.string :name t.belongs_to :parent_category end end def self.down drop_table :categories end end i odpowiadaj±cy jej model: class Category < ActiveRecord::Base belongs_to :parent_category, :class_name => 'Category' has_many :subcategories, :class_name => 'Category' end Czyli mam drzewo kategorii, ka¿da kategoria mo¿e mieæ kategoriê nadrzêdn± oraz wiele kategorii podrzêdnych. Mój problem jest taki, ¿e nastêpuj±ce wywo³anie: category = Category.new :name => 'cat' subcategory = category.subcategories.build :name => 'subcat' nie ustawia parent_category_id u podkategorii na ich rodzica. Czy da siê to osi±gn±æ deklaratywnie, czy jestem zmuszony do rêcznej obs³ugi tej sytuacji? U¿ywam JRuby 1.1.4 i RoR 2.1.0. -- Pozdrawiam Zbyszek Malec
Re: ActiveRecord + drzewo
Author: =?ISO-8859-2?Q?R
Date: Mon, 16 Feb 2009 23:23
Date: Mon, 16 Feb 2009 23:23
15 lines
495 bytes
495 bytes
zbyszek.malec@gmail.com pisze: > category = Category.new :name => 'cat' > subcategory = category.subcategories.build :name => 'subcat' > > nie ustawia parent_category_id u podkategorii na ich rodzica. Czy da > si� to osi�gn�� deklaratywnie, > czy jestem zmuszony do r�cznej obs�ugi tej sytuacji? Czy robisz w og�le .save? Bo po zapisie powinny by� ustawione poprawnie idki (ew. potrzebny jest reload obiekt�w). -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
Re: ActiveRecord + drzewo
Author: Wojciech Piekuto
Date: Tue, 17 Feb 2009 04:45
Date: Tue, 17 Feb 2009 04:45
23 lines
736 bytes
736 bytes
Hej, Jak wspomnia³ ju¿ Rados³aw, ¿eby parent_category_id ustawi³o siê, rodzic musi byæ wcze¶niej zapisany do bazy. Z drugiej strony je¶li nie jest zapisany to nie ma czym siê przejmowaæ, bo przy zapisie któregokolwiek z nich i tak oba zostan± zapisane, a parent_category_id w subcategory ustawione przez AR. Jednak twoja definicja klasy Category jest nie do koñca ok. Musisz powiedziec jakiej kolumny ma u¿yæ has_many, poniewa¿ domy¶lnie jest to 'category_id'. class Category < ActiveRecord::Base belongs_to :parent_category, :class_name => 'Category' has_many :subcategories, :class_name => 'Category', :foreign_key => 'parent_category_id' end Pozdrawiam, Wojciech Piekutowski
Re: ActiveRecord + drzewo
Author: Zbyszek Malec
Date: Tue, 17 Feb 2009 18:59
Date: Tue, 17 Feb 2009 18:59
11 lines
285 bytes
285 bytes
Dnia Mon, 16 Feb 2009 23:23:08 +0100, Rados�aw Bu�at napisa�(a): > Czy robisz w og�le .save? Bo po zapisie powinny by� ustawione poprawnie > idki (ew. potrzebny jest reload obiekt�w). Robi� save, po zbudowaniu ca�ego drzewa kategorii. -- Zbyszek Malec gg 2756100
Re: ActiveRecord + drzewo
Author: Zbyszek Malec
Date: Tue, 17 Feb 2009 19:11
Date: Tue, 17 Feb 2009 19:11
18 lines
566 bytes
566 bytes
Dnia Tue, 17 Feb 2009 04:45:11 -0800 (PST), Wojciech Piekutowski napisa�(a): > Jednak twoja definicja klasy Category jest nie do ko�ca ok. Musisz > powiedziec jakiej kolumny ma u�y� has_many, poniewa� domy�lnie jest to > 'category_id'. > class Category < ActiveRecord::Base > belongs_to :parent_category, :class_name => 'Category' > has_many :subcategories, :class_name => 'Category', :foreign_key > => 'parent_category_id' > end Rzeczywi�cie, przyczyn� by� b��d w definicji kategorii. Dzi�ki za pomoc. -- Zbyszek Malec gg 2756100
Re: ActiveRecord + drzewo
Author: =?ISO-8859-2?Q?M
Date: Wed, 18 Feb 2009 01:33
Date: Wed, 18 Feb 2009 01:33
22 lines
714 bytes
714 bytes
On Feb 17, 7:11 pm, Zbyszek Malec <zbysze...@tlen.pl> wrote: > Dnia Tue, 17 Feb 2009 04:45:11 -0800 (PST), Wojciech Piekutowski > napisa³(a): > > > Jednak twoja definicja klasy Category jest nie do koñca ok. Musisz > > powiedziec jakiej kolumny ma u¿yæ has_many, poniewa¿ domy¶lnie jest to > > 'category_id'. > > class Category < ActiveRecord::Base > > belongs_to :parent_category, :class_name => 'Category' > > has_many :subcategories, :class_name => 'Category', :foreign_key > > => 'parent_category_id' > > end > > Rzeczywi¶cie, przyczyn± by³ b³±d w definicji kategorii. Dziêki za pomoc. A w ogóle czy nie lepiej skorzystaæ tutaj z acts_as_nested_set? m.
Re: ActiveRecord + drzewo
Author: Daniel Podlejski
Date: Thu, 19 Feb 2009 20:52
Date: Thu, 19 Feb 2009 20:52
18 lines
676 bytes
676 bytes
Zbyszek Malec napisał: > Próbowałem to znaleźć ręcznie w dokumentacji i nie udało mi się znaleźć > odpowiedniego linka (dopiero google mi pomogły). Korzystam z > api.rubyonrails.org i tam w tym lewym okienku nie ma śladu po > acts_as_nested_set czy Acts::As. Czy ja źle szukam czy może tam trzeba mieć > +2 do odkrywania? Bo to wyleciało z "core" jakiś czas temu, a na api.rubyonrails.org jest pewnie tylko dokumentacja do aktualnej wersji Rails. Dlatego wolę http://apidock.com/ - jest dokumentacja do wersji historycznych, na dodatek z dobrą wyszukiwarką, w przyjemniejszej dla oka formie, i z możliwością komentowania. -- Daniel Podlejski
Re: ActiveRecord + drzewo
Author: Zbyszek Malec
Date: Thu, 19 Feb 2009 21:16
Date: Thu, 19 Feb 2009 21:16
15 lines
543 bytes
543 bytes
Dnia Wed, 18 Feb 2009 01:33:45 -0800 (PST), Maciej Bi�as napisa�(a): > A w og�le czy nie lepiej skorzysta� tutaj z acts_as_nested_set? Ha, to jest w�a�nie to czego potrzebowa�em. Pr�bowa�em to znale�� r�cznie w dokumentacji i nie uda�o mi si� znale�� odpowiedniego linka (dopiero google mi pomog�y). Korzystam z api.rubyonrails.org i tam w tym lewym okienku nie ma �ladu po acts_as_nested_set czy Acts::As. Czy ja �le szukam czy mo�e tam trzeba mie� +2 do odkrywania? -- Zbyszek Malec gg 2756100
Re: ActiveRecord + drzewo
Author: =?ISO-8859-2?Q?M
Date: Fri, 20 Feb 2009 02:05
Date: Fri, 20 Feb 2009 02:05
18 lines
604 bytes
604 bytes
On Feb 19, 9:52 pm, Daniel Podlejski <under...@underley.eu.org> wrote: > Zbyszek Malec napisa³: > > Czy ja ¼le szukam czy mo¿e tam trzeba mieæ > > +2 do odkrywania? > > Bo to wylecia³o z "core" jaki¶ czas temu, a na api.rubyonrails.org jest > pewnie tylko dokumentacja do aktualnej wersji Rails. > > Dlatego wolêhttp://apidock.com/- jest dokumentacja do wersji > historycznych, na dodatek z dobr± wyszukiwark±, w przyjemniejszej > dla oka formie, i z mo¿liwo¶ci± komentowania. Wylecia³o dok³adnie wraz z RoRem 2.0 (wraz z paginacj±, in_place_edit i innymi...) m.
Re: ActiveRecord + drzewo
Author: Wojtek Piekutows
Date: Fri, 20 Feb 2009 02:29
Date: Fri, 20 Feb 2009 02:29
29 lines
905 bytes
905 bytes
On Feb 18, 10:33 am, Maciej Bi³as <mac...@inszy.org> wrote: > On Feb 17, 7:11 pm, Zbyszek Malec <zbysze...@tlen.pl> wrote: > > > Dnia Tue, 17 Feb 2009 04:45:11 -0800 (PST), Wojciech Piekutowski > > napisa³(a): > > > > Jednak twoja definicja klasy Category jest nie do koñca ok. Musisz > > > powiedziec jakiej kolumny ma u¿yæ has_many, poniewa¿ domy¶lnie jest to > > > 'category_id'. > > > class Category < ActiveRecord::Base > > > belongs_to :parent_category, :class_name => 'Category' > > > has_many :subcategories, :class_name => 'Category', :foreign_key > > > => 'parent_category_id' > > > end > > > Rzeczywi¶cie, przyczyn± by³ b³±d w definicji kategorii. Dziêki za pomoc. > > A w ogóle czy nie lepiej skorzystaæ tutaj z acts_as_nested_set? > > m. acts_as_tree bêdzie bardziej pasowaæ do tego przypadku. Pozdrawiam, Wojciech Piekutowski
Re: ActiveRecord + drzewo
Author: =?iso-8859-2?B?U
Date: Fri, 20 Feb 2009 19:14
Date: Fri, 20 Feb 2009 19:14
29 lines
986 bytes
986 bytes
On Fri, 20 Feb 2009 11:29:57 +0100, Wojtek Piekutowski <w.piekutowski@gmail.com> wrote: >> >> > > Jednak twoja definicja klasy Category jest nie do ko�ca ok. Musisz >> > > powiedziec jakiej kolumny ma u�y� has_many, poniewa� domy�lnie jest >> to >> > > 'category_id'. >> > > class Category < ActiveRecord::Base >> > > � belongs_to :parent_category, :class_name => 'Category' >> > > � has_many � :subcategories, :class_name => 'Category', :foreign_key >> > > => 'parent_category_id' >> > > end >> >> > Rzeczywi�cie, przyczyn� by� b��d w definicji kategorii. Dzi�ki za >> pomoc. >> >> A w og�le czy nie lepiej skorzysta� tutaj z acts_as_nested_set? > > acts_as_tree b�dzie bardziej pasowa� do tego przypadku. acts_as_nested_set to wlasnie implementacja drzewa. ktory bedzie lepszy, zalezy od tego, jakie operacje beda wykonywane najczesciej na tym drzewie. pzdr szeryf -- Przemys�aw ,,Szeryf'' Kowalczyk :: http://szeryf.wordpress.com/
Re: ActiveRecord + drzewo
Author: =?ISO-8859-2?Q?R
Date: Fri, 20 Feb 2009 19:42
Date: Fri, 20 Feb 2009 19:42
14 lines
458 bytes
458 bytes
Przemys�aw Kowalczyk pisze: > > acts_as_nested_set to wlasnie implementacja drzewa. ktory bedzie lepszy, > zalezy od tego, jakie operacje beda wykonywane najczesciej na tym drzewie. > Jeszcze co� mi �wita w g�owie co� takiego jak better_nested_set i awesome_nested_set :). Nazwy maj� sugerowa� lepsz� implementacj�, kolega mo�e sprawdzi� jak jest w rzeczywisto�ci. -- Rados�aw Bu�at http://radarek.jogger.pl - m�j blog
Re: ActiveRecord + drzewo
Author: Zbyszek Malec
Date: Wed, 25 Feb 2009 23:46
Date: Wed, 25 Feb 2009 23:46
13 lines
475 bytes
475 bytes
Dnia Fri, 20 Feb 2009 19:42:35 +0100, Rados�aw Bu�at napisa�(a): > Jeszcze co� mi �wita w g�owie co� takiego jak better_nested_set i > awesome_nested_set :). Nazwy maj� sugerowa� lepsz� implementacj�, kolega > mo�e sprawdzi� jak jest w rzeczywisto�ci. Ostatecznie u�y�em awesome_nested_set, kt�ry to jest poprawion� wersj� better_nested_set, kt�ry to jest poprawion� wersj� acts_as_nested_set :] -- Zbyszek Malec gg 2756100
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads