Hi, I have also deleted acts_as_nested_set :scope => :root_id
from the Node class. No changes. Tx. 2011/2/18 txinto <[email protected]> > Hi, I have a class named Node that has another nodes acting like > sources and destinations. We can build a graph using these nodes: > > -------------------------------------------------- > class Node < ActiveRecord::Base > > hobo_model # Don't put anything above this > > acts_as_nested_set :scope => :root_id > > .............. > > has_many :edges_as_source, :class_name => 'NodesEdges', :foreign_key > => 'source_id', :dependent => :destroy, :order => :position > has_many :edges_as_destination, :class_name => > 'NodesEdges', :foreign_key => 'destination_id' > has_many :sources, :through => :edges_as_destination , :accessible > => true > has_many :destinations, :through => :edges_as_source , :order => > 'nodes_edges.position',:accessible => true > > ....... > > end > > ------------------- > > This is the nodes_edges class that allows us to connect the nodes: > > ------------------- > > class NodesEdges < ActiveRecord::Base > > hobo_model # Don't put anything above this > > belongs_to :source, :class_name => 'Node', :creator => true > belongs_to :destination, :class_name => 'Node' > > acts_as_list :scope => :source > > fields do > timestamps > end > > .... > > end > > ------------- > > NodesEdges has a position and it really works. The destinations are > listed in the correct order. > > BUT.... > > The problem is that *sortable-collection* is not working. > > This is part of my application.dryml: > --------------------- > <extend tag="show-page" for="SubSystem"> > <old-show-page> > <field-list: fields="node_type, project, default_mode" param/> > <collection-section:> > .... > <h4 param="collection-heading">Destinations (for sorting reasons)</ > h4> > <sortable-collection:edges_as_source param/> > .... > </old-show-page> > </extend> > ----------------------- > > The show page is showing perfectly, we can drag & drop, but it does > not alter the position value of the list. I think it is invoking > nothing, cause if I add this to the NodesEdgesController: > > def reorder > something to crash > end > > Nothing happens!! > > I also have checked for activity in the Firebug, but nothing happened. > > Just mention that SubSystem is a children class of Node: > > ----------------------- > class SubSystem < Node > has_many :edges_as_source, :class_name => 'NodesEdges', :foreign_key > => 'source_id', :dependent=>:destroy,:order => :position > has_many :edges_as_destination, :class_name => > 'NodesEdges', :foreign_key => 'destination_id' > has_many :sources, :through => :edges_as_destination , :accessible > => true > has_many :destinations, :through => :edges_as_source , :order => > 'nodes_edges.position', :accessible => true > ... > end > --------------------- > > I have searched the hobo users group and internet and the cookbook and > found nothing: > > * my position column is on the "list-item" class table. > * the acts_as_list is present and well scoped in the "list-item" > class. > * the has_many relationship is present in the "container" class and > has the :order => :position configured. > * the application.dryml has the <sortable-collection> tag. I have > checked that the pages.dryml also generates the <sortable-collection> > tag. > * I have tested it without def reorder, with "def reorder hobo_reorder > end", and with "def reorder something to crash end", and no > differences. > * If I change manually the position column, it works. > * I have no null values in the position column. > > Any idea of what is happening? Any new and interesting test to do? > > Thank you. > > -- > 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.
