Rails redirect_to новое поведение с Ruby 2.2/Rails 4.2?

Попытка выполнить обновление с Ruby 2.0/Rails 4.0 до Ruby 2.2/Rails 4.2, я столкнулся с удивительной ошибкой при входе в мое приложение (на основе Rails Tutorial от M. Hartl):

Controller: SessionsController#create 
Instruction: redirect_to root_url
Error message: wrong number of arguments (2 for 1)

Вот контроллер сеансов:

class SessionsController < ApplicationController
 def new
 end
 def create
 user = User.find_by_login(params[:session][:login])
 if user && user.authenticate(params[:session][:password])
 sign_in user
 redirect_to root_url
 else
 flash.now[:error] = 'Invalid login/password combination'
 render 'new'
 end
 end
 def destroy
 sign_out
 redirect_to root_url
 end
end

Вот файл маршрутов:

ODQStairs::Application.routes.draw do
 resources :requests
#static pages
 get '/help', to: "static_pages#help"
 get '/about', to: "static_pages#about"
 get '/contact', to: "static_pages#contact"
#root definition
 root to: "dashboards#home"
#routes
 resources :sessions, only: [:new, :create, :destroy] 
 get '/signin', to: 'sessions#new' , via: :get
 match '/signout', to: 'sessions#destroy', via: :delete
 resources :parameters_lists do
 resources :parameters
 end
 ...

Я ничего не нашел в руководствах по обновлению Rails относительно функции redirect_to. Ваша помощь приветствуется! Спасибо!

2 ответа

Я посмотрел на версии своих драгоценных камней, я действительно пропустил несколько. Я обновился до последних версий, после того, как были установлены камни:

Installing websocket 1.2.1
Installing selenium-webdriver 2.44.0
Installing bootstrap-will_paginate 0.0.10
Installing sass 3.4.12
Installing annotate 2.6.5
Installing globalid 0.3.3

Это решило проблему.

С уважением,

Фред


Я столкнулся с той же проблемой в своих тестах RSpec при обновлении Rails 4.0 до 4.2 и решил, что это связано с turbolinks. У моего Gemfile.lock был:

turbolinks (1.3.0)

Я изменил строку зависимости turbolinks в моем Gemfile на

gem 'turbolinks', '~> 2.5'

Затем я обновил драгоценный камень, используя следующую команду bundler:

bundle update --source turbolinks

Он обновил мою версию turbolinks до последней версии, и теперь метод redirect_to работает как и ожидалось в моих тестах.

licensed under cc by-sa 3.0 with attribution.