I have an index action that shows a list of data. def index # go get data, # setup some instance vars # render view - display data in table end URL: /orders/ I would like to have another action that sets up a few instance vars and then calls the index action, which then takes over from there and goes and gets data, displays the data in a table. archive > sets up vars > runs index action code > renders index action view I was assuming that I could just do: def archive #setup instance vars render :action => "index" end URL: /orders/;archive But this just renders the index actions view, and doesn''t actually execute the index action code. Just wondering if it''s possible to have an action do a bit of setup, then hand things over to another action? Thanks, Dave -- Posted via http://www.ruby-forum.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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
You could call ''index'' like a method from the other action, but then you''ll still need to do the render in the other action. So... def archive #setup instance vars index #go run the code in ''index'' render :action => ''index'' #render the template end David Coleman wrote:> I have an index action that shows a list of data. > > def index > # go get data, > # setup some instance vars > # render view - display data in table > end > > URL: /orders/ > > I would like to have another action that sets up a few instance vars and > then calls the index action, which then takes over from there and goes > and gets data, displays the data in a table. > > archive > sets up vars > runs index action code > renders index > action view > > I was assuming that I could just do: > > def archive > #setup instance vars > render :action => "index" > end > > URL: /orders/;archive > > But this just renders the index actions view, and doesn''t actually > execute the index action code. > > Just wondering if it''s possible to have an action do a bit of setup, > then hand things over to another action? > > Thanks, > > Dave > >--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Jon Garvin wrote:> You could call ''index'' like a method from the other action, but then > you''ll still need to do the render in the other action. So... > > def archive > #setup instance vars > index #go run the code in ''index'' > render :action => ''index'' #render the template > endThat''s what I thought would work, but I tried that and for some reason it gives me: Template is missing missing template /user/admin/stuff/config/../etc/etc/archived.rhtml So it''s still trying to get to the archived view. -- Posted via http://www.ruby-forum.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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> I have an index action that shows a list of data. > > def index > # go get data, > # setup some instance vars > # render view - display data in table > end > > URL: /orders/ > > I would like to have another action that sets up a few instance vars and > then calls the index action, which then takes over from there and goes > and gets data, displays the data in a table. > > archive > sets up vars > runs index action code > renders index > action view > > I was assuming that I could just do: > > def archive > #setup instance vars > render :action => "index" > end > > URL: /orders/;archive > > But this just renders the index actions view, and doesn''t actually > execute the index action code. > > Just wondering if it''s possible to have an action do a bit of setup, > then hand things over to another action?If it were me, I''d separate that common functionality out into a protected method and have both index and archive call it directly or via a before_filter. This way when you realize that you need to do things a little different b/n index and archive it''s a bit easier and clearer as to what you''re affecting. -philip --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Philip Hallstrom wrote:> If it were me, I''d separate that common functionality out into a > protected > method and have both index and archive call it directly or via a > before_filter.Good deal. I created a private "listme" action and stuck the common code in there. For some reason, now when I call: def archived #make some instance vars listme render :action => ''index'' end I don''t get the missing template error. Totally strange. Any clue as to why I was getting the template error (see post above). Thanks for the suggestion - learn something new every day! Dave -- Posted via http://www.ruby-forum.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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi David, David Coleman wrote:>> def archive > missing template /user/admin/stuff/config/../etc/etc/archived.rhtmlIs that a typo? archive vs. archived? Bill --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Bill Walton wrote:> Hi David, > > David Coleman wrote: >>> def archive >> missing template /user/admin/stuff/config/../etc/etc/archived.rhtml > > Is that a typo? archive vs. archived? > > BillYeah, typo. It''s still looking for the archive template, although I''ve called render on the index action. -- Posted via http://www.ruby-forum.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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> Philip Hallstrom wrote: >> If it were me, I''d separate that common functionality out into a >> protected >> method and have both index and archive call it directly or via a >> before_filter. > > Good deal. I created a private "listme" action and stuck the common code > in there. > > For some reason, now when I call: > > def archived > #make some instance vars > listme > render :action => ''index'' > end > > I don''t get the missing template error. Totally strange. > > Any clue as to why I was getting the template error (see post above). > > Thanks for the suggestion - learn something new every day!I believe when you call the the index action from archived index does an implicit "render..." and uses the current action name for the template... which is archived. I suspect if you created a blank "archived.rhtml" you''d then get a double rendering error. But I could be totally wrong on both accounts as I haven''t really looked into it :) --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---