On Sun, Sep 13, 2009 at 12:30 PM, Dudebot <[email protected]> wrote:

>
> Sorry for this basic noob question:
>
> I have an "Item" class in my models which corresponds to a SQL table,
> and a "Cart" class and a "CartItem" class which do not.  The Item
> class does not have an amount object, which is transitory, so I've put
> this amount object in my CartItem class:
>
> class CartItem
>
>  attr_reader :item, :amount
>
>  def initialize( item )
>    @item = item
>  end
>
>  def set_amount( amount )
>   This.amount = amount
>  end
>
> end
>
> I have a list of items in a viewer form, and I'd like to pass
> associated amount to my CartItem when the user hits the "Add to Cart"
> button. I've tried many variations of text_field and text_field_tag
> in:
>
>        <% @items.each do |item| %>
> ...
>                <%= text_field( :amount , :action => 'set_amount( :amount
> )', :id =>
> item )%>
>                <%= button_to "Add to Cart" , :action => 'add_to_cart', :id
> => item
> %>
> ...
>        <% end %>
>
> I know the text_field up there is severely mangled and won't work--but
> it's an example of the 2000th try, the last several hundred out of
> pure desperation.  Can anyone help with the proper syntax for the
> text_field in the .html.emb file?
>
> The add_to_cart call with the button is working:
>
>  def add_to_cart
>    item = Item.find( params[ :id ] )
>    @cart = find_cart
>    @cart.add_item( item )
>  end
>
> Many TIA,
> Craig
>

The text_field view helper generates an HTML input tag.  Thus, there's no
attribute on the input tag called 'action' in the X/HTML spec.
Next, when to use text_field and text_field_tag?

text_field:        if you're creating or updating a model.
text_field_tag:  if you're NOT creating or updating a model.

Thus, I'm guessing that you're simply updating a session variable when
you're performing the

@cart.add_item( item )

If this is the case, then you should use text_field_tag within a form_tag.
 You can see
example usage of 'form_tag' and 'text_field_tag' here:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#M001729

If you are in fact creating or updating a model, then you should use
test_field within a form_for.
You can see examples usage of 'form_for' and 'text_field' here:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M001607

Finally, I would recommend getting access to a copy of "Agile Web
Development with Rails 3rd ed"
and/or obtaining the really great screencasts on the subject, "Mastering
Rails Form",

http://www.pragprog.com/screencasts/v-rbforms/mastering-rails-forms

Good luck,

-Conrad


> >
>

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