2013-10-14 2 views
0

Во время сохранения! объекта, я получаю странное «ArgumentError - неправильное количество аргументов (1 для 0)». Отладка приводит к методу with_transaction_returning_status в файле Ruby1.9.3/lib/ruby ​​/ gems/1.9.1/gems/activerecord-3.2.14/lib/active_record/transaction.rb, , где self.class.transaction оказывается нулевым , что кажется странным. Переход по строке self.class.transaction вызывает повышение ошибки. Любые идеи, почему это может пойти не так?Ошибка в «with_transaction_returning_status» во время сохранения

def with_transaction_returning_status 
    status = nil 
    self.class.transaction do 
    add_to_transaction 
    status = yield 
    raise ActiveRecord::Rollback unless status 
    end 
    status 
end 
+0

существует так много возможных причин ... было бы неплохо разместить некоторый контекст (код, который вы выполняете), и сообщение об ошибке (полная строка stacktrace включая строку -чисел). – phoet

+0

@phoet: больше не нужно искать решение. Казалось бы, хорошая идея получить «,» как разделитель в поле ввода, переопределив метод to_s для BigDecimal, превратившийся в кошмар, приводя к вышесказанному ... Убрали переопределение to_s, и проблема исчезла. .. – Danny

+0

вы должны ответить на свой вопрос, чтобы другим не приходилось смотреть на него больше – phoet

ответ

0

Non-вопрос: что, казалось бы хорошей идеей, чтобы получить «» в качестве разделителя в поле ввода, путем переопределения метода to_s для BigDecimal оказался в кошмар, что приводит к выше .. Удалено переопределение to_s, и проблема исчезла ...

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