2016-09-22 53 views
14

właśnie uaktualniony do szyn 5 i wszystko poszło całkiem Smoothy ale bez widocznego powodu metoda, która jest wywoływana po skip_before_action nie pozwala rspec uruchomić z tej wiadomościskip_before_action i Rails 5

Before process_action callback :redirect_heroku_user has not been defined (ArgumentError) 

Jest bardzo dziwne ponieważ działa dobrze na szynach 4. Oto mój kod:

# application_controller.rb 
def redirect_heroku_user 
    redirect_to root_path if heroku_user? 
end 

# some_controller.rb 
skip_before_action :redirect_heroku_user, only: :edit 
+0

Czy masz before_action: redirect_heroku_user gdzieś indziej? Myślę, że rzeczywisty błąd mówi ci, że nie możesz pominąć wcześniejszego działania, ponieważ przedtem nie był właściwie ustawiony. Mogę się mylić, ale dodając tory: false, ponieważ sugerowane odpowiedzi to coś, czego nie powinieneś robić, chyba że potrzebujesz go do produkcji. – arieljuod

Odpowiedz

2

W Railsach 5, jeżeli metoda redirect_heroku_user nie jest zdefiniowana w tym samym kontrolerze, to podnosi ten wyjątek.

można przekazać raise: false unikać jej jak mentioned here:

skip_before_action :redirect_heroku_user, only: :edit, raise: false