Thanks, I think I looked at something similar to a mode/context param
previously but seemed to drift away. I might have another look.
In this scenario are you suggesting sticking the conditional logic
against the mode param in the action RJS view?
@display_context = params[:context]
respond_to do |format|
format.js
end
Is there a way to specify the specific RJS file in the action?
Concept (format.js lines not necessarily valid, just to show
intention):
display_context = params[:context]
respond_to do |format|
if display_context == "sales"
format.js { :render => 'sales_products' }
if display_context == "purchase"
format.js { :render => 'purchase_products' }
else
format.js { :render => 'products' }
end
end
On 28 Oct, 14:00, Jeff <[EMAIL PROTECTED]> wrote:
> 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
-~----------~----~----~----~------~----~------~--~---