I bet this this look better in a pastie. Kind of hard to see the format. On Aug 2, 2:39 pm, Owen Dall <[email protected]> wrote: > Wow - nice example! > -Owen > > On Mon, Aug 2, 2010 at 5:02 PM, Simeon Theobald > <[email protected]>wrote: > > > > > > > Thanks Chuck - I haven't had a chance to try this out yet, but greatly > > appreciate the effort you've gone to in fitting an example to my use case. > > > I'll let you know how it works out. > > > Simeon. > > > On Mon, Aug 2, 2010 at 2:44 AM, <[email protected]> wrote: > > >> After I wrote the acts_as_tree recipe, I wrote another tag definition that > >> iterates over an acts_as_tree model and displays the cards of an associated > >> has_many model. This will not work precisely the way you want for your use > >> case, but might spur some ideas. > > >> Example: > > >> class Question < ActiveRecord::Base > >> hobo_model > >> fields do > >> name :string > >> parent_id :integer > >> end > > >> has_many :answers > >> belongs_to :answer > >> acts_as_tree > >> end > > >> class Answer < ActiveRecord::Base > >> hobo_model > >> fields do > >> name : string > >> end > >> belongs_to :question > >> has_one :another_question_to_ask, :class_name => 'question' > >> end > > >> In application.dryml: > > >> <extend tag="index-page" for="Question"> > > >> <old-index-page merge> > > >> <after-new-link:><p><br/>Click a question to view > >> answers.</p></after-new-link:> > > >> <!-- Remove pager control --> > > >> <top-page-nav: replace /> > > >> <collection: replace> > > >> <hierarchical-collection with="&Question.all" to="answers"> > > >> <append-close-button:> > > >> <a:answers action="new" > >> if="&can_create?(this.answers)"> > > >> <ht key="answers.actions.new"> > > >> New Answer > > >> </ht> > > >> </a:answers> > > >> </append-close-button:> > > >> </hierarchical-collection> > > >> </collection:> > > >> <!-- Remove pager control --> > > >> <bottom-page-nav: replace /> > > >> </old-index-page> > > >> </extend> > > >> <def tag="hierarchical-collection" attrs="to"> > > >> <% > > >> def tree_h(acts_as_tree_set, init=true, &block) > > >> @@level = 1 if init > > >> if acts_as_tree_set.size > 0 > > >> acts_as_tree_set.collect do |item| %> > > >> <do with="&item"> <% > > >> next if item.parent_id && init > > >> @@level += 1 > > >> yield item > > >> tree_h(item.children, false, &block) if > >> item.children.size > 0 > > >> @@level -= 1 %> > > >> </do> <% > > >> end > > >> else > > >> %>(none)<% > > >> end > > >> end > > >> tree_h(this, true) { |item| > > >> item_for = to.nil? ? item : item.send(to) %> > > >> <%= "<h#{@@level}>" %> > > >> <a href="#" > >> onclick="Effect.BlindDown('hierarchy-collection-#{item.typed_id.gsub(':','- > >> ')}'); > >> return false;" param="hierarchy-link"> > > >> <%= item.name + (" (#{item_for.count})" if > >> item_for.respond_to?('count')) %> > > >> </a> > > >> <%= "</h#{@@level}" %><% > > >> if item_for.respond_to?('count') %> > > >> <div > >> id="hierarchy-collection-#{item.typed_id.gsub(':','-')}" style="display: > >> none" param="hierarchy-section"> > > >> <div class="close-button" param="close-button"> > > >> <a href="#" > >> onclick="$('hierarchy-collection-#{item.typed_id.gsub(':','-')}').hide(); > >> return false;">close</a> > > >> </div> > > >> <collection with="&item_for" param="items" /> > > >> </div><% > > >> end > > >> } > > >> %> > > >> </def> > > >> --- On *Sat, 7/31/10, Simeon Theobald <[email protected]>* wrote: > > >> From: Simeon Theobald <[email protected]> > >> Subject: Re: [Hobo Users] Multiple models in one tree? > >> To: [email protected] > >> Date: Saturday, July 31, 2010, 12:19 AM > > >> Okay - a rough outline: > > >> A question has many potential answers. Each answer can lead to a number of > >> questions. An example would be: > > >> +Would you like Coffee or Tea? [Question] > >> - Coffee [Answer] > >> +De-Caff or Regular? [Question] > >> -De-Caff [Answer] > >> -Regular [Answer] > >> +Moccona or Nescafe [Question] > >> -Tea [Answer] > > >> I can't see that recursive nesting of two trees should be a problem given > >> that we can pass in the "parentid" (which incidentally I need to figure out > >> how to specify differently), the problem at the moment is that I can't see > >> a > >> way to pass the current "id" to the alternate model's tree as a "parentid". > > >> I'd eventually like to include links to add "children", or edit/remove the > >> current node. That functionality further complicates things in that it will > >> involve manipulating records in the intermediary tables as well as the leaf > >> level. Nesting sure messes with your frame of reference! > > >> First things first though, I need to get a tree out somehow.. > > >> On Sat, Jul 31, 2010 at 12:43 PM, Chuck Benedict < > >> [email protected] > >> <http://mc/[email protected]>>wrote: > > >> Give me a use case and I'll be glad to add my $0.02 > > >> Sent from my iPhone > > >> On Jul 30, 2010, at 5:02 AM, Simeon > >> <[email protected]<http://mc/[email protected]>> > >> wrote: > > >> The learning curve gets steep in a hurry around these parts! > > >> The "Hierarchies - Using acts_as_tree" recipe deals nicely with a self > >> referencing model (category belongs to category) but it takes on the > >> context of the model containing the call. I have yet to find reference > >> to a similar solution involving multiple (nested) models. > > >> Is it possible, and how would I go about starting to figure it out? > > >> Thanks for your thoughts! > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Hobo Users" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<hobousers%2bunsubscr...@googlegroups > >> .com> > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/hobousers?hl=en. > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Hobo Users" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<hobousers%2bunsubscr...@googlegroups > >> .com> > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/hobousers?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Hobo Users" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<hobousers%2bunsubscr...@googlegroups > > .com> > > . > > For more options, visit this group at > >http://groups.google.com/group/hobousers?hl=en. > > -- > - Owen > > Owen Dall, Chief Systems Architect > Barquin International > Cell: 410-991-0811
-- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/hobousers?hl=en.
