class A < ActiveRecord::Base
has_many :bs, :dependent => :destroy
end
class B < ActiveRecord::Base
belongs_to :a
acts_as_tree :order => 'position'
acts_as_list :scope => a
end
Es decir, la tabla bs contiene los campos a_id, position y parent_id de forma que los registros de bs relacionados con un mismo registro de as se comporten como una lista.
Ahora bien, he de cambiar esto. Necesito que los registros de bs relacionados con un mismo registro de as y con parent_id = null se comporten como una lista independiente.
acts_as_list :scope => 'a_id = #{a_id} and parent_id is null'
Finalmente, necesito que los registros de bs con un mismo parent_id y relacionados a un mismo registro de as también se comporten como una lista independiente.
acts_as_list :scope => 'a_id = #{a_id} and parent_id #{parent.nil? ? \'is null\' : \'= \' + parent_id.to_s }'
Como se dice en la documentación, acerca de :scope
It‘s also possible to give it an entire string that is interpolated if you need a tighter scope than just a foreign key....y eso hemos hecho.
No hay comentarios:
Publicar un comentario