2015-01-15 2 views
15

nelle rotaie versione 4.1.1 di un app, ho il seguente creare metodo articles_controller:Perché c'è un numero errato di errori di argomenti quando si utilizza redirect_to in Rails 4.2?

def create 
    @article = Article.new(article_params) 
    authorize @article 
    if @article.save 
    flash[:notice] = "Successfully created article." 
    redirect_to edit_article_path(@article) 
    else 
    render :new 
    end 
end 

Tuttavia, dopo l'aggiornamento a Rails 4.2 i seguenti account di errore quando il reindirizzamento viene tentata:

wrong number of arguments (2 for 1)

Perché si verifica questo errore e come può essere risolto?

+0

In realtà sono in esecuzione in questo dopo un recente aggiornamento 4.2, ma non sto usando turbolinks. – maxhs

risposta

46

Il problema è stato causato dal file Gem contenente una versione obsoleta di Turbolinks (2.2.2). Ho risolto il problema aggiornando Turbolinks alla versione 2.5.3.

In Gemfile:

gem 'turbolinks', '~> 2.5.3'

+4

Wow. Questo è stato davvero difficile da trovare, ho trascorso circa 2 ore non sapendo cosa fare con questo errore. Molte grazie per quella risposta. – jmarceli

+4

L'ho riscontrato quando ho eseguito l'aggiornamento alla versione 4.2 e tutti i miei test che hanno assert_redirected_to hanno avuto esito negativo. Sono stato a questo per circa 3 ore, quindi grazie OP per aver risposto alla tua domanda. – Rystraum