Here''s a call to a partial: <%= render(:partial => "cart", :object => @cart) %> As far as I know, that statement causes a variable to be created called ''cart'' that is available to the partial, and whose value is @cart. In addition, the file that contains the partial must be named _cart.html.erb. In the partial file _cart.html.erb, you can then do something like this: <div><%= number_to_currency(cart.total_price) %></div> However, I made a mistake, and I wrote @cart instead of cart: <div><%= number_to_currency(@cart.total_price) %></div> and rails didn''t complain. So, which variable name should you use? To me it seems much clearer to use @cart. It highlights the links between the various files and makes it easier to know where the cart/@cart value came from. -- Posted via http://www.ruby-forum.com/.
7stud -- wrote:> and rails didn''t complain. So, which variable name should you use? To > me it seems much clearer to use @cart. It highlights the links between > the various files and makes it easier to know where the cart/@cart value > came from.From my understanding the instance variable assigned in the controller already available to the partials.> <div><%= number_to_currency(@cart.total_price) %></div>So doing this is accessing the instance variable @cart and not the local variable cart.> <%= render(:partial => "cart", :object => @cart) %>The way I understand this syntax is that the value of @cart will be made available in the partial as a local variable cart. Imaging you had this instead: <%= render(:partial => "cart", :object => @some_cart) %> In this case the local variable for the partial would still be cart. Taken from :partial => "cart" and from :object => @some_cart. However, @some_cart would still be accessible from inside the partial because the partials can see all the instance variable assigned in the controller. -- Posted via http://www.ruby-forum.com/.
Robert Walker wrote:> In this case the local variable for the partial would still be cart. > Taken from :partial => "cart" and from :object => @some_cart. However, > @some_cart would still be accessible from inside the partial because the > partials can see all the instance variable assigned in the controller.Correction: and NOT from :object => ... -- Posted via http://www.ruby-forum.com/.