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 [email protected].
To post to this group, send email to [email protected].
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.

Reply via email to