On Sep 19, 8:40 pm, andrew <[email protected]> wrote:
> Greetings,
>
> I'm new to Ruby on Rails.  I'm working through "Agile Web Development
> with Rails 3rd Edition" and it is going quite well.  However, there
> are times I don't quite understand *why* I'm doing something.  For
> some items, I think I understand, but I would like some confirmation.
> So, I'm going to post my questions here and I hope that someone can
> help me in understanding.
>
> In Chapter 9, I'm working on creating an AJAX-based shopping cart.
>
> So, I'm replacing this:
>
>  <!-- START:add_to_cart -->
>  <%= button_to "Add to Cart", :action => 'add_to_cart', :id => product
> %>
>  <!-- END:add_to_cart -->
>
> With this:
>
>   <!-- START:form_remote_tag -->
>   <% form_remote_tag :url => { :action => 'add_to_cart', :id =>
> product } do %>
>   <%= submit_tag "Add to Cart" %>
>   <% end %>
>
> Questions on this:
>
> I can explain that the first second is doing this: "Use ruby helper
> button_to to add a button for each item, and it calls the action
> add_to_cart, passing back the product that was selected"
>
> I can't seem to be able to explain the second section. "The rails
> helper form_remote_tag is called, which is similar to a method call
> and the :url is similar to passing a parameter to a method.   The
> items between { and } are the values for the :url parameter."
> Correct?
>
pretty much. What's in the :url hash are routing options, ie the same
thing as the second parameter to button_to or link_to

> What is the "submit_tag"?  Is that similar to the input type="submit"
> in HTML?  Is it basically saying, show a button?
>
the xxx_tag helpers generate the appropriate input tags, so submit tag
is input type=submit, textfield_tag is a textfield etc.

> Why is the do%> and <% end %> part needed?  Is this saying do the
> following ruby code?
>
form_tag / remote_form_tag take a block - the do/end are just the
block delimiters

> The difference between the two seconds, as the book explains, is that
> the second sends an AJAX request instead of a POST request.  I read
> that, I think I understand it, but I don't exactly know why there is a
> difference.  Can someone explain?
>
AJAX is a big topic in itself but the key difference is that whereas a
'normal' request reloads the whole page, an AJAX request just happens
in the background and you get to decide how the response from the
server is used.

Fred
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to