[rspec-rails] warning about polymorphism on child objects

Hi,

I just ran into kind of an issue with child models in a one-to-one
relationship who are also in a polymorphic association, i.e., their
foreign key is kept by another model, e.g., ‘Comment’.

So, the path for a child might be “human_parents/1/child”, while the
path to the polymorphic association would be “human_parents/1/child/
comments”. (Imagine that there are many kinds of parents, all capable
of only one child, e.g., “kangaroo_parents/1/child”.)

The problem, I’ve found, is that a relatively efficient approach to
controlling the Comment model, i.e., having a CommentController, is
not fully testable under rspec-rails, bc the routes are unique within
the CommentController spec file only by their params. So, when I do
say ‘get :new, :human_parent_id=>2’ I can’t further specify the action
on the child, e.g., ‘get new comment for the child’.

From a rspec-rails testing perspective, then, this should make you
prefer to distribute the comment controller actions among the child
controllers and not, as is often proposed, in a single controller.

If anyone has any thoughts on how I can in fact, run around this
problem and keep my CommentController, please write.

Lille

…I couldn’t handle this lingering difficulty, so I just put the
CommentController into a module and mixed it in. Thus, no longer
soliciting comments on previous problem. Yet, I think the warning
still maybe useful re Rails and comments modeling.

Lille

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs