I''m pretty new to Rails and was wondering what the best practice is with respect to render :update. Should logic be placed in the :update blocks or should the logic be outside the blocks with separate blocks provided for each case? i.e. render :update do |page| if condition1 page.replace_html ... <rest of code for condition 2> else page.replace_html... <rest of code for condition 2> end or if condition1 render :update do |page| <code for condition 1> end else render :update do |page| <code for condition 2> end end Also, when is it preferable to use an RJS template over render :update? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
El jue, 13-12-2007 a las 13:38 -0800, bigbanger escribió:> I''m pretty new to Rails and was wondering what the best practice is > with respect to render :update. Should logic be placed in the :update > blocks or should the logic be outside the blocks with separate blocks > provided for each case? > > i.e. > > render :update do |page| > if condition1 > page.replace_html ... > <rest of code for condition 2> > else > page.replace_html... > <rest of code for condition 2> > end > > or > > if condition1 > render :update do |page| > <code for condition 1> > end > else > render :update do |page| > <code for condition 2> > end > endI usually do it like second option (less code possible in render block), but not sure which is better and why. -- Jonathan Hernández Velasco aka jBilbo http://jhernandez.gpltarragona.org President de GPLtarragona ;; http://www.gpltarragona.org --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frankly, you shouldn''t use render :update ... ever. It is sort of like "render :text" in that it should be used sparingly to never. The inherent problem with render :text, :inline, or :update is that it is clearly putting view code in the controller. View code (anything describing html, css, javascript or changes to them) should simply not be in the controller. Look at this code render :update do |page| page[''list''].replace_html "some new html" page[''list''].replace_html "some new html" page[''list''].replace_html "some new html" page[''foo''].visual_effect :highlight end Clearly this type of code is all view-based and belongs in the view folder within an rjs template. The answer is to do something like this: if condition1 render :action => "cond1.js.rjs" else render :action => "cond2.js.rjs" end -- 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 -~----------~----~----~----~------~----~------~--~---
As you have asked for better practice to use render :update. I would like to say best is that dont use render :update, have related rjs file for action. You could write render :update in controller action. But it is again MVC.. render :update call is just for ui.. we update divs, replace divs with the help of it. It gets difficult to handle also. There should be separation between view code and controller code. -- Anil On Dec 14, 2007 3:08 AM, bigbanger <bigbanger10s-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > I''m pretty new to Rails and was wondering what the best practice is > with respect to render :update. Should logic be placed in the :update > blocks or should the logic be outside the blocks with separate blocks > provided for each case? > > i.e. > > render :update do |page| > if condition1 > page.replace_html ... > <rest of code for condition 2> > else > page.replace_html... > <rest of code for condition 2> > end > > or > > if condition1 > render :update do |page| > <code for condition 1> > end > else > render :update do |page| > <code for condition 2> > end > end > > Also, when is it preferable to use an RJS template over render :update? > > >-- Anil http://anilwadghule.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 -~----------~----~----~----~------~----~------~--~---