«Попытка вызвать частный метод» с депо учебник«Попытка вызвать частный метод» с депо учебник
В моей модели «cart.rb» У меня есть
def add_product(product_id)
current_item = line_items.where(:product_id => product_id).first
if current_item
current_item.quantity += 1
else
current_item = LineItem.new(:product_id=>product_id)
line_items << current_item
end
current_item
end
И в «line_items_controller.rb "у меня есть
def create
@cart = find_or_create_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
.....
Когда я выбираю пункт, чтобы добавить его в корзину я получаю„Попытка вызова частного метода“ошибка.
след Приложение
/Users/machinename/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_record/attribute_methods.rb:236:in `method_missing'
/Users/machinename/Documents/rails_projects/depot/app/controllers/line_items_controller.rb:46:in `create'
Я видел некоторое обсуждение ошибки подобного, и это звучало как ответ был апгрейд на Ruby 1.9 (я использую 1.8.7). Это ответ или есть еще одна возможная причина этого?
класса Cart: уничтожить конец Защиту add_product (product_id) current_item = line_items.where (: product_id => product_id) .Первый если current_item current_item.quantity + = 1 еще current_item = LineItem.new (: product_id => product_id) line_items << current_item конец current_item конец –
Maestro1024
Это некрасиво, но это код модели cart.rb. – Maestro1024
вы добавляете свой метод после закрытия класса. положить конец класса после окончания метода, и я ставлю, что он будет работать. – Salil