On Oct 28, 8:43 am, Andrew Edwards <[EMAIL PROTECTED]>
wrote:
> Hi,
>
> Could somewhat offer guidance on this situation.
>
> Say I have a Product model and an associated resource reference
> defined:
>
> map.resources :products, :collection => { :search => :get }
>
> I need to access the search action but have a different view
> (generally RJS) rendered depending on the context of the call.
>
> For example, if called from an order assembly page I might need the
> resulting product collection displayed with add to basket links.
> Whereas on another page I might need them rendered with add to
> purchase order links.
>
> I see to obvious solutions:
>
> 1. Define multiple actions within a single resource. They would
> essentially have the same code but would call different RJS view code
> to render the result.
>
> map.resources :products, :collection => { :sales_order_search
> => :get, :purchase_order_search => :get }
>
> 2. Have multiple resources such as as:
>
> map.resources :sales_order_products, :collection => { :search
> => :get }
> map.resources :purchase_order_products, :collection =>
> { :search => :get }
>
> If going down route 2 I'd probably just repurpose the index action to
> check for a search_string param to narrow the results returned.
>
> Both seem less than perfect, although I'm tended towards solution 1.
> Although I've only highlighted two view contexts there could be more,
> I would suggest 3 or 4 could be common. How would you handle this
> situation?
>
> Thanks, Andrew
First off, what about using the same search action for each, and using
query parameters to specify the desired behavior? That way you won't
need a new custom action every time you need a new "flavor" of search
call. It's perfectly RESTful to append any query parameters you need
to your actions (/products/search?mode=purchase, or whatever).
However, maybe you really need a separate controller entirely, like a
ProductSearchesController, whose index action can take whatever
parameters you think are appropriate. That might help encapsulate all
of your searching functionality and keep the ProductsController
restful and clean.
Just some ideas....
Jeff
purpleworkshops.com
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---