Sure. No, there really isn't. It's a convenience thing. Not having to specify the template is a blessing in most cases. Thing is, you could probably do simething interesting with before / after filters.
On Tue, Jan 20, 2009 at 4:09 PM, admanb <[email protected]> wrote: > > Actually, I got that part pretty well solved by just changing > everything to "widget." :) > > The part I'm wondering is if there's some way to re-route most of a > controller to a different set of views than the standard default. > Right now every action ends with "render :template => 'widget/ > action_name'" but I'm curious if there's a better way. > > -Adam > > On Jan 20, 2:03 pm, "Brian Hogan" <[email protected]> wrote: >> I can think of a few things off the top of my head - one way is to >> have one RJS file that looks like this: >> >> page.visual_effect :toggle_slide, "hidden...@object}_form" >> page.visual_effect :toggle_slide, "add...@object}_testimonial}_button" >> >> And in each controller action, right before rendering the RJS, do this >> >> @object = "testimonial" >> >> or >> >> @object = "service" >> >> Basically, use instance variables (or another mechanism) to make >> things available to the RJS template just like you would with anything >> else. >> >> Heck if you have @service or @testimonial there, you could generalize >> it more by using the same variable for each - @thing >> >> then do @thing.class.downcase to get "testimonial" or "service" >> >> How does that sound? :) >> >> On Tue, Jan 20, 2009 at 3:42 PM, admanb <[email protected]> wrote: >> >> > Hey all, >> >> > Here's my situation: I have a pair of controllers with associated >> > models (called Services and Testimonials) that are quite similar. >> > Because their CRUD behavior is executed via AJAX, the "templates" for >> > the actions are all short .rjs files. Now, because of the similarity >> > of the models, most of the templates are exactly the same, with only >> > the object names changed. That is, where one looks like this: >> >> > page.visual_effect :toggle_slide, 'hidden_testimonial_form' >> > page.visual_effect :toggle_slide, 'add_testimonial_button' >> >> > The other looks like this: >> >> > page.visual_effect :toggle_slide, 'hidden_service_form' >> > page.visual_effect :toggle_slide, 'add_service_button' >> >> > Obviously there's no reason these should be separate. My question is, >> > what's the best way to set these up as shared templates? Both of the >> > controllers inherit from a third controller (Brochure) because of >> > shared authentication behavior. But the only way I can think of to >> > share templates is something like this: >> >> > Put template files in /views/brochure. >> >> > At the end of each action, explicitly render the template. i.e. >> >> > def new >> > ... >> > render :template => 'brochure/new >> > end >> >> > Is there a better way that I'm missing? > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

