Oooookay...this might be a bit over the top, but it might hint at another
problem more relevant.
In general you use Mixins to share common functionality in Ruby/Ruby on
Rails. In several of my recent projects I choose abstract superclasses,
instead; at the same time I used polymorphism. I.e.
class Parent < ActiveRecord::Base
self.abstract_class = true
has_one :xxx, :as => :poly_xxx
has_many :documents, :through => :xxx, :readonly => false
[more shared document handling stuff]
end
class Xxx < ActiveRecord::Base
belongs_to :special_xxx, :polymorphic => true
[...]
end
class Document < ActiveRecord::Base
belongs_to :xxx
[...]
end
class ChildA < Parent
[special stuff A]
end
class ChildB < Parent
[special stuff B]
end
So far there had been no problems nesting the documents into ClassA and
ClassB etc.:
class ChildBsController < ApplicationController
active_scaffold :child_b do |conf|
[...]
conf.nested.add_link(:documents)
end
[...]
end
Everything worked like a charm, I could freely list, created and update the
attached documents via the nested action link.
All of a sudden it stopped working; alas, because this was in a non-tested
part (*BLUSH*), I can't pin it down to any specific recent update. Doing
some debugging, though, I was able to localize it somewhere in the vicinity
of the abstract base_class, because the parameter hash contained a hash key
parent_id, where it so far contained the hash key child_b_id.
As I was not able to locate the trouble spot. I switched to using a Mixin
instead of the abstract base_class, and everything is working fine again.
Nevertheless, this seems to hint at an AS problem with finding the reverse
association under the described –not so common– circumstances.
Regards
Michael
--
You received this message because you are subscribed to the Google Groups
"ActiveScaffold : Ruby on Rails plugin" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/activescaffold/-/AZ15TQpwaSEJ.
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/activescaffold?hl=en.