There has been no suggestions on this.  Perhaps the question was not
very well explained?

I have a model called Product that has an attribute called
product_type.  I have another model called Quote which creates a quote
for a Product.  Quote belongs to Product.  And a QuoteController.

How do I get the QuoteController to use a different view for its
actions dependent upon the product_type?  In general most
product_types will use the "normal" set of views for a quote so it
would be excellent if the QuoteController was able to use the specific
product_type views if they exist and if not fall back to the default
set.

Further thinking in the OP below.

Any ideas gratefully received.

O.


On Jun 10, 9:10 am, Owain <[email protected]> wrote:
> There are some similar discussions about but none seem to have a
> definitive answer of this one.
>
> I have an application which supports multiple domains.  In the
> application controller I look up the domain being requested and pull
> some attributes from a Domain model which determines thing such as
> content wording, pricing model, which css to use etc.  All works fine
> but a new domain in the "family" needs to have a different "Quote"
> data entry from the other domains (domain_type).  Ok MVC, this is
> where you need to do your stuff.  M is unchanged.  C has a slight
> tweek (pull in some select box data prior to rendering the form) and
> only really the View needs any changes.
>
> What I would like to do is to have ActionView to see if there is a
> domain specific view in app/views/quote/domain_type  and render that,
> if it isn't there then just pull it from the app/views/quote (i.e. the
> else)
>
> Options I have considered are:
>
> 1) put the domain_type logic in each effected views, not very DRY and
> horrible to add new domain_types.  Also this is really Controlller
> logic.
> 2) code a "custom render" logic into the controller or application
> controller to render the appropriate file, ok but need to go through
> and change all of the coded and implied renders in the application.
> Yuk!
> 3) override render method of ActionView::Base to pick up the
> @domain.domain_type and code the logic in the overidden method and
> then call super.  Best method but not sure how to do this?
> 4) Am I re-inventing the wheel and there is already a plugin or
> something to do this?
>
> Thanks for your help.
>
> O.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en.

Reply via email to