Ruby on Rails Thursday, February 16, 2017

ok, still confused....   
I've defined my parms like this...

def cart_params
# params.fetch(:cart, {})
params.require(:cart).permit(:user_id, :product_id )


end

Have this in my controller.

def add_to_cart

product_id = params['id']
user_id = session['user_id']
@cart = Cart.new(user_id, product_id)

end


Not sure what to put in the show page, to pass these values to the controller.  

I've got a few rails books, and not one of them cover this.  



On Thursday, February 16, 2017 at 12:18:38 AM UTC-5, Scott Jacobsen wrote:
Controller action methods do not take parameters. You get the parameters from the `params` hash. Also, as was mentioned, do not send user_id as a param. It is a security error, and you don't need to because you can access the session in the controller:

def add_to_cart
  product_id = params["product_id"]
  user_id = session["user_id"]
  @cart = Cart.new(user_id, product_id)
  ...
end

On Wednesday, February 15, 2017 at 5:11:02 PM UTC-7, Joe Guerra wrote:
I am pretty close to figuring this out...

I've got this in my product show page....I'm trying to pass user_id & product_id to my products controller, add_to_cart method...


<%= button_to  'Add to Cart', {:controller => "products", :action => "add_to_cart", :user_id=> session[:user_id], :product_id => @id   } , :method=>:post  %>

on the controller...

def add_to_cart(user_id, product_id)


@cart = Cart.new(user_id, product_id )
#

end

I get the error, 

"wrong number of arguments (given 0, expected 2)"



Any suggestions?

Thanks,

Joe


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f62d02c7-7059-425b-b810-cb28a8d8f392%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment