2013-03-02 2 views
0

У меня возникли проблемы с изменением функции в spree. Функция называется copy_priceПочему это не работает в Spree

Оригинальная версия что-то вроде этого:

def copy_price 
    if variant 
    self.price = variant.price if price.nil? 
    self.currency = variant.currency if currency.nil? 
    end 
end 

, который, если я понимаю право обновит единичную цену Line_Item, только если цена равна нулю, что я считаю, что это не должно быть внутри страницы заказов (после завершения заказа). Я заметил, что заказ изменяется, если основная цена изменяется внутри раздела администратора даже после завершения заказа.

Так что я думал, что функция copy_price виновата, но каждый раз, когда я пытаюсь ее изменить, изменений нет. .

def copy_price 
    @price_run = true 
    self.price = 30.00 
end 

def get_price_run 
    if @price_run == true 
    return "true" 
    else 
    return "false" 
    end 
end 

и позвоните get_price_run внутри моего представления, чтобы распечатать, если фактический запуск цены был выполнен. и он продолжает выводить false. Кто-нибудь знает, почему это было бы.

ответ

0

Я выяснил проблему. Функция copy_price вызывается только тогда, когда позиция сначала создается (например, когда вы помещаете ее в корзину). Поэтому, когда я пытался узнать, был ли он вызван, глядя на страницу администраторских заказов, он никогда не вызывался.

Смежные вопросы