Ruby on Rails Friday, November 1, 2013

maybe you miss the code in the book:

file: line_item.rb
belong_to :product
belong_to :cart

then, the line_item has the attr product.




On Sunday, April 8, 2012 7:14:31 AM UTC+8, Ruby-Forum.com User wrote:
I am new to Ruby and to Rails (using Ruby 1.9.3 and Rails 3.2.3) so I
picked up the Agile Web Development book and have been working through
it (apologies if this isn't the correct place for this question but the
pragprog forums don't seem to work for me).  I am currently working
through the book and have reached the point where I am adding
functionality to an "Add to Cart" button.  Here is the code that was
provided for the 'create' method in the line_item_controller:

def create

 @cart = current_cart
 product = Product.find(params[:product_id])
 @line_item = @cart.line_items.build(product: product)

...

end

This results in the following error when I click "Add to Cart"

Can't mass-assign protected attributes: product

Can anyone shed some light on what is going on here (my search-fu has
failed me)?  The only way that I have been able to get this to work is
by changing the code (starting at @line_item) to:

 @line_item = @cart.line_items.build
 @line_item.product = product

Is this correct or is it just a band-aid fix that may cause issues going
forward?

Thanks,

--
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 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/83006756-e583-4fd6-8447-5deb2a82bc3f%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment