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_treeend
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]> 
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]> 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].


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].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to