2014-01-28 4 views
2

Я использую spree_multi_currency gem https://github.com/pronix/spree-multi-currency в моем приложении spree. Это работает, но когда я добавить товар в корзину, что время он дает ошибку, какSpree Multi Currency

undefined method `target_shipment=' for #<Spree::Variant:0xb4ea7b80> 

def add_to_line_item(line_item, variant, quantity, currency = nil, shipment = nil) 
if line_item 
    line_item.target_shipment = shipment 
    line_item.quantity += quantity.to_i 
    line_item.currency = currency unless currency.nil? 
else 
    ....... 
end 

Вот мой полный след

activemodel (4.0.2) lib/active_model/attribute_methods.rb:439:in `method_missing' 
activerecord (4.0.2) lib/active_record/attribute_methods.rb:155:in `method_missing' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-multi-currency-0abaa72ab8ed/app/models/spree/order_decorator.rb:7:in `add_to_line_item' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-99a6ad9f0e4e/core/app/models/spree/order_contents.rb:10:in `add' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-99a6ad9f0e4e/core/app/models/spree/order_populator.rb:49:in `attempt_cart_add' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-99a6ad9f0e4e/core/app/models/spree/order_populator.rb:26:in `block in populate' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-99a6ad9f0e4e/core/app/models/spree/order_populator.rb:25:in `each' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-99a6ad9f0e4e/core/app/models/spree/order_populator.rb:25:in `populate' 
/home/tps/.rvm/gems/ruby-2.0.0-p247/bundler/gems/spree-99a6ad9f0e4e/frontend/app/controllers/spree/orders_controller.rb:44:in `populate' 
actionpack (4.0.2) lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
actionpack (4.0.2) lib/abstract_controller/base.rb:189:in `process_action' 

Спасибо заранее.

+0

Можете ли вы добавить полную трассировку стека? Не уверен, откуда отправляется target_shipment, чтобы помочь вам с ответом. – GeekOnCoffee

+0

@GeekOnCoffee Я добавил полный след. –

+0

Этот сайт является общедоступным? Мы всегда ищем примеры spree-multi-currency в дикой природе. – GeekOnCoffee

ответ

1

Похоже, что существует несоответствие между методом, определенным в фиксации Spree, который вы используете, и методом в spree_multi_currency.

Spree: add_to_line_item(variant, quantity, currency, shipment)

Spree_multi_currency: add_to_line_item(line_item, variant, quantity, currency = nil, shipment = nil)

Убедитесь, что вы используете правильный ветвь расширения, чтобы соответствовать вашей Spree ветви.

+0

Спасибо за помощь. Я снова решил свою проблему с вашим руководством. –