hi im workiing on ruby on rails im just wondering if my add_product is wrong because when i add my product in to my cart at first attemp it fail and give me a nil cannot concien bigdecimal error but clicking return from my browser and add item at the second attemp it worked fine and but didnt count my first attemp of adding my product this is my add_product method my model/cart.rb : has_many :line_items, :dependent => :destroy def add_product(product_id) current_item = line_items.where(:product_id => product_id).first if current_item current_item.quantity = current_item.quantity.to_i + 1 else current_item = LineItem.new(:product_id=>product_id) line_items << current_item end current_item end def total_price Array.wrap(line_items).sum { |item| item.total_price } end my cart/show.html.rb: <div class="cart_title" >Your Cart</div> <table> <% for item in @cart.line_items %> <tr> <td><%= item.quantity %>×</td> <td><%= item.product.title %></td> <td class="item_price" ><%= number_to_currency(item.total_price) %></td> </tr> <% end %> <tr class="total_line" > <td colspan="2" >Total</td> <td class="total_cell" ><%number_to_currency(@cart.total_price) %></td> </tr> </table> <%= button_to ''Empty cart'', @cart, :method => :delete, :confirm => ''Are you sure?'' %> my model/line_item.rb def total_price if product.price product.price = product.price * quantity else 0.to_d end end full trace: app/models/line_item.rb:14:in `*'' app/models/line_item.rb:14:in `total_price'' app/views/carts/show.html.erb:7:in `block in _app_views_carts_show_html_erb___389431939__618846538'' activerecord (3.1.1) lib/active_record/associations/collection_proxy.rb:91:in `each'' activerecord (3.1.1) lib/active_record/associations/collection_proxy.rb:91:in `method_missing'' app/views/carts/show.html.erb:3:in `_app_views_carts_show_html_erb___389431939__618846538'' actionpack (3.1.1) lib/action_view/template.rb:144:in `block in render'' activesupport (3.1.1) lib/active_support/notifications.rb:55:in `instrument'' actionpack (3.1.1) lib/action_view/template.rb:142:in `render'' actionpack (3.1.1) lib/action_view/renderer/template_renderer.rb:40:in `block (2 levels) in render_template'' actionpack (3.1.1) lib/action_view/renderer/abstract_renderer.rb:33:in `block in instrument'' activesupport (3.1.1) lib/active_support/notifications.rb:53:in `block in instrument'' activesupport (3.1.1) lib/active_support/notifications/instrumenter.rb:21:in `instrument'' activesupport (3.1.1) lib/active_support/notifications.rb:53:in `instrument'' actionpack (3.1.1) lib/action_view/renderer/abstract_renderer.rb:33:in `instrument'' actionpack (3.1.1) lib/action_view/renderer/template_renderer.rb:39:in `block in render_template'' actionpack (3.1.1) lib/action_view/renderer/template_renderer.rb:47:in `render_with_layout'' actionpack (3.1.1) lib/action_view/renderer/template_renderer.rb:38:in `render_template'' actionpack (3.1.1) lib/action_view/renderer/template_renderer.rb:12:in `block in render'' actionpack (3.1.1) lib/action_view/renderer/abstract_renderer.rb:22:in `wrap_formats'' actionpack (3.1.1) lib/action_view/renderer/template_renderer.rb:9:in `render'' actionpack (3.1.1) lib/action_view/renderer/renderer.rb:36:in `render_template'' actionpack (3.1.1) lib/action_view/renderer/renderer.rb:17:in `render'' actionpack (3.1.1) lib/abstract_controller/rendering.rb:120:in `_render_template'' actionpack (3.1.1) lib/action_controller/metal/streaming.rb:250:in `_render_template'' actionpack (3.1.1) lib/abstract_controller/rendering.rb:114:in `render_to_body'' actionpack (3.1.1) lib/action_controller/metal/renderers.rb:30:in `render_to_body'' actionpack (3.1.1) lib/action_controller/metal/compatibility.rb:43:in `render_to_body'' actionpack (3.1.1) lib/abstract_controller/rendering.rb:99:in `render'' actionpack (3.1.1) lib/action_controller/metal/rendering.rb:16:in `render'' actionpack (3.1.1) lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'' activesupport (3.1.1) lib/active_support/core_ext/benchmark.rb:5:in `block in ms'' /home/led/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310:in `realtime'' activesupport (3.1.1) lib/active_support/core_ext/benchmark.rb:5:in `ms'' actionpack (3.1.1) lib/action_controller/metal/instrumentation.rb:40:in `block in render'' actionpack (3.1.1) lib/action_controller/metal/instrumentation.rb:78:in `cleanup_view_runtime'' activerecord (3.1.1) lib/active_record/railties/controller_runtime.rb:24:in `cleanup_view_runtime'' actionpack (3.1.1) lib/action_controller/metal/instrumentation.rb:39:in `render'' actionpack (3.1.1) lib/action_controller/metal/implicit_render.rb:10:in `default_render'' actionpack (3.1.1) lib/action_controller/metal/mime_responds.rb:268:in `block in retrieve_response_from_mimes'' actionpack (3.1.1) lib/action_controller/metal/mime_responds.rb:195:in `call'' actionpack (3.1.1) lib/action_controller/metal/mime_responds.rb:195:in `respond_to'' app/controllers/carts_controller.rb:22:in `show'' actionpack (3.1.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'' actionpack (3.1.1) lib/abstract_controller/base.rb:167:in `process_action'' actionpack (3.1.1) lib/action_controller/metal/rendering.rb:10:in `process_action'' actionpack (3.1.1) lib/abstract_controller/callbacks.rb:18:in `block in process_action'' activesupport (3.1.1) lib/active_support/callbacks.rb:416:in `_run__371692982__process_action__266900328__callbacks'' activesupport (3.1.1) lib/active_support/callbacks.rb:386:in `_run_process_action_callbacks'' activesupport (3.1.1) lib/active_support/callbacks.rb:81:in `run_callbacks'' actionpack (3.1.1) lib/abstract_controller/callbacks.rb:17:in `process_action'' actionpack (3.1.1) lib/action_controller/metal/rescue.rb:17:in `process_action'' actionpack (3.1.1) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'' activesupport (3.1.1) lib/active_support/notifications.rb:53:in `block in instrument'' activesupport (3.1.1) lib/active_support/notifications/instrumenter.rb:21:in `instrument'' activesupport (3.1.1) lib/active_support/notifications.rb:53:in `instrument'' actionpack (3.1.1) lib/action_controller/metal/instrumentation.rb:29:in `process_action'' actionpack (3.1.1) lib/action_controller/metal/params_wrapper.rb:201:in `process_action'' activerecord (3.1.1) lib/active_record/railties/controller_runtime.rb:18:in `process_action'' actionpack (3.1.1) lib/abstract_controller/base.rb:121:in `process'' actionpack (3.1.1) lib/abstract_controller/rendering.rb:45:in `process'' actionpack (3.1.1) lib/action_controller/metal.rb:193:in `dispatch'' actionpack (3.1.1) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'' actionpack (3.1.1) lib/action_controller/metal.rb:236:in `block in action'' actionpack (3.1.1) lib/action_dispatch/routing/route_set.rb:65:in `call'' actionpack (3.1.1) lib/action_dispatch/routing/route_set.rb:65:in `dispatch'' actionpack (3.1.1) lib/action_dispatch/routing/route_set.rb:29:in `call'' rack-mount (0.8.3) lib/rack/mount/route_set.rb:152:in `block in call'' rack-mount (0.8.3) lib/rack/mount/code_generation.rb:96:in `block in recognize'' rack-mount (0.8.3) lib/rack/mount/code_generation.rb:96:in `optimized_each'' rack-mount (0.8.3) lib/rack/mount/code_generation.rb:95:in `recognize'' rack-mount (0.8.3) lib/rack/mount/route_set.rb:141:in `call'' actionpack (3.1.1) lib/action_dispatch/routing/route_set.rb:532:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'' rack (1.3.6) lib/rack/etag.rb:23:in `call'' rack (1.3.6) lib/rack/conditionalget.rb:25:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/head.rb:14:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/params_parser.rb:21:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/flash.rb:243:in `call'' rack (1.3.6) lib/rack/session/abstract/id.rb:195:in `context'' rack (1.3.6) lib/rack/session/abstract/id.rb:190:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/cookies.rb:331:in `call'' activerecord (3.1.1) lib/active_record/query_cache.rb:62:in `call'' activerecord (3.1.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:477:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'' activesupport (3.1.1) lib/active_support/callbacks.rb:392:in `_run_call_callbacks'' activesupport (3.1.1) lib/active_support/callbacks.rb:81:in `run_callbacks'' actionpack (3.1.1) lib/action_dispatch/middleware/callbacks.rb:28:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/reloader.rb:68:in `call'' rack (1.3.6) lib/rack/sendfile.rb:101:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/remote_ip.rb:48:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'' railties (3.1.1) lib/rails/rack/logger.rb:13:in `call'' rack (1.3.6) lib/rack/methodoverride.rb:24:in `call'' rack (1.3.6) lib/rack/runtime.rb:17:in `call'' activesupport (3.1.1) lib/active_support/cache/strategy/local_cache.rb:72:in `call'' rack (1.3.6) lib/rack/lock.rb:15:in `call'' actionpack (3.1.1) lib/action_dispatch/middleware/static.rb:53:in `call'' railties (3.1.1) lib/rails/engine.rb:456:in `call'' railties (3.1.1) lib/rails/rack/content_length.rb:16:in `call'' railties (3.1.1) lib/rails/rack/log_tailer.rb:14:in `call'' rack (1.3.6) lib/rack/handler/webrick.rb:59:in `service'' /home/led/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'' /home/led/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'' /home/led/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'' im having a problem in adding my first item in to my cart it fails but when adding second time it worked fine im just wondering if my adding product method is right? thanks in advance more power to us! -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.