2016-10-07 5 views
0

Я пытаюсь передать параметры в мои, даже используя жемчужину и рельсы aasm ruby. Однако, когда я пытаюсь следовать примеру документации, я получаю Wrong number of arguments. Expected 0, got 2.. Что я делаю не так?Aasm Gem Passing params in Event

код ниже:

class Foo < ActiveRecord::Base 
    include AASM 

    aasm column: :status do 
    state :stopped, initial: true 
    # TODO: if post fails, should this remain in_progress? 
    state :running 

    event :run, aasm_fire_event: :do_something do 
     transitions from: :stopped, to: :running 
    end 
    end 

    def do_something(list_of_things) 
    .... #stuff here 
    end 
end 

, а затем код вызова

foo = Foo.new 
foo.run(:running, [param1, param2])  

Это, кажется, следовать примеру, но я не могу заставить его работать. Любая помощь будет оценена по достоинству.

+0

Вы должны посмотреть всю трассировку стека ошибок и проверить номер строки, в которой вы получаете ошибку – dnsh

ответ

0

Для всех, кто наткнулся на эту проблему, если у вас есть другие обратные вызовы на вашем мероприятии или на old_state или new_state, которые будут вызваны в событие, приведенный выше шаблон попытается применить параметры ко всем обратным вызовам. Это то, что происходило со мной, поэтому я решил проблему, разрешив передавать аргументы на эти обратные вызовы, а затем ничего не делая с ними.