[Rails] Re: Arguments Error

2010-05-14 Thread Angel Dinar
I have the exact same problem.
same book.
same code.
same error.

So, how did you finally solve the problem ?

Thanks
Angel
-- 
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-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.



[Rails] Re: Arguments Error

2008-12-30 Thread Ryan Ororie

Freddy Andersen wrote:
> Where does the cart_item come from? is that in the Store controller?
> post the store controller... The view has the @cart object but also
> needs the cart_item.. Is that from the session?

cart_item.rb is the name of a model file, the one that starts with class 
CartItem from above.

My store_controller.rb looks like this:

class StoreController < ApplicationController

  def index
@products = Product.find_products_for_sale
  end

  def add_to_cart
@cart = find_cart
product = Product.find(params[:id])
@cart.add_product(product)
  end

  private
  def find_cart
session[:cart] ||=Cart.new
  end
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Freddy Andersen

Where does the cart_item come from? is that in the Store controller?
post the store controller... The view has the @cart object but also
needs the cart_item.. Is that from the session?
--~--~-~--~~~---~--~~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Ryan Ororie

> a Sorry I see now I was thinking that the CartItem class was an
> activerecord class ... The issue is this:
> Here you call a new object of CartItem with a product passed
> @items << CartItem.new(product)
> But here in the initialize you do not have a argument for
> initialize...
> class CartItem
>   attr_reader :product, :quantity
>   def initialize
> @product = product
> @quantity = 1
>   end
> Change it to this
> class CartItem
>   attr_reader :product, :quantity
>   def initialize( product )
> @product = product
> @quantity = 1
>   end

Interesting, tried that and it's spitting a "no method for cart_item 
back at me:

 NameError in Store#add_to_cart

Showing app/views/store/add_to_cart.rhtml where line #4 raised:

undefined local variable or method `cart_item' for 
#<#:0x26028e8>

Extracted source (around line #4):

1: The shopping cart
2: 
3:   <% for item in @cart.items %>
4: <%= cart_item.quantity %> × <%= h(item.title) %>
5:   <% end %>
6: 

RAILS_ROOT: script/../config/..
Application Trace | Framework Trace | Full Trace

#{RAILS_ROOT}/app/views/store/add_to_cart.rhtml:4:in 
`_run_rhtml_47app47views47store47add_to_cart46rhtml'
#{RAILS_ROOT}/app/views/store/add_to_cart.rhtml:3:in `each'
#{RAILS_ROOT}/app/views/store/add_to_cart.rhtml:3:in 
`_run_rhtml_47app47views47store47add_to_cart46rhtml'


Any idea?
-- 
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Freddy Andersen

Looks like you have two open posts for the same issue... Here is the
answer from the other post...

a Sorry I see now I was thinking that the CartItem class was an
activerecord class ... The issue is this:
Here you call a new object of CartItem with a product passed
@items << CartItem.new(product)
But here in the initialize you do not have a argument for
initialize...
class CartItem
  attr_reader :product, :quantity
  def initialize
@product = product
@quantity = 1
  end
Change it to this
class CartItem
  attr_reader :product, :quantity
  def initialize( product )
@product = product
@quantity = 1
  end

I would NEVER store the cartitem(add product to cart) in a session
object for a ecommerce application. Yes there are things that could/
should be stored in the session but not something like adding a
product to your cart... Unless you have a session replication system
for your back-end which then would store the session in either the
database or memcache anywho...

--~--~-~--~~~---~--~~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Ryan Ororie


> Probably.
> 
> You could always add a parameter to your CartItem#initialize method. 
> I'm
> not sure that you're heading in the direction you want to be heading, 
> since
> it appears that CartItem is not derived from ActiveRecord::Base -- it's 
> not
> tied to a database.
> 
> You might want to go back and study Rail's ideas regarding models, how 
> they
> tie to database tables, and how you can initialize them.

I following along from the book DHH wrote verbatim, but it's the second 
edition. It was my understanding that having a database table for the 
cart was unnecessary because it's session data and would be avaliable 
based on that user?



-- 
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Patrick Doyle
>
> > CartItem#initialze
> > -- expects 0 arguments, you passed 1 argument in via CartItem#new
>
>
> I'm not really sure what do do with that -- what should I change? Are
> you saying only my CartItem#initialze is wrong?
>
Probably.

You could always add a parameter to your CartItem#initialize method.  I'm
not sure that you're heading in the direction you want to be heading, since
it appears that CartItem is not derived from ActiveRecord::Base -- it's not
tied to a database.

You might want to go back and study Rail's ideas regarding models, how they
tie to database tables, and how you can initialize them.

--wpd

--~--~-~--~~~---~--~~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Ryan Ororie


> StoreController#add_to_cart
> -- doesn't expect any methods, but this is called by the Rails framework 
> as
> an action, and Rails doesn't pass any arguments to the action methods

> Cart#add_product
> -- expects 1 argument, you're calling it with 1 argument in
> StoreController#add_to_cart

> CartItem#new
> -- calls CartItem#initialize with however many arguments it was passed
> -- is called with 1 argument in Cart#add_product

> CartItem#initialze
> -- expects 0 arguments, you passed 1 argument in via CartItem#new


I'm not really sure what do do with that -- what should I change? Are 
you saying only my CartItem#initialze is wrong?
-- 
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Patrick Doyle
Your error message is:

wrong number of arguments (1 for 0)

That means that somewhere, you are calling a method that doesn't expect any
arguments and you are passing an argument to it.  The stack trace give you a
clue:

ArgumentError in StoreController#add_to_cart

app/models/cart.rb:13:in `initialize'
app/models/cart.rb:13:in `new'
app/models/cart.rb:13:in `add_product'
app/controllers/store_controller.rb:10:in `add_to_cart'
One of the methods listed (#add_to_cart, #initialize, #new, or #add_product)
is being called with an argument where it wasn't expecting one.

StoreController#add_to_cart
-- doesn't expect any methods, but this is called by the Rails framework as
an action, and Rails doesn't pass any arguments to the action methods
Cart#add_product
-- expects 1 argument, you're calling it with 1 argument in
StoreController#add_to_cart
CartItem#new
-- calls CartItem#initialize with however many arguments it was passed
-- is called with 1 argument in Cart#add_product
CartItem#initialze
-- expects 0 arguments, you passed 1 argument in via CartItem#new

--wpd

--~--~-~--~~~---~--~~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Arguments Error

2008-12-30 Thread Ryan Ororie

Also, my add_to_cart.rhtml view looks like this:

The shopping cart

  <% for item in @cart.items %>
<%= cart_item.quantity %> × <%= h(item.title) %>
  <% 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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---