Sorry, :poly_xxx and :special_xxx were meant to be the same.

Am Donnerstag, 8. März 2012 10:41:22 UTC+1 schrieb Atastor:
>
> 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/-/i_6GjMaRjqYJ.
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.

Reply via email to