У меня есть приложение rails. Я создал sessioncontroller и хочу перенаправить на страницу пользователя «/ users», как только пользователь войдет в систему. Но перенаправление, похоже, не происходит.
class SessionsController < ApplicationController
def create
user = User.find_or_create_by_fbid(params[:user][:fbid]) #...Success
user.update_attributes(params[:user]) #....Sucess
sign_in(user) # ....This occurs successfully
redirect_to users_path # .... Redirect doesnt occur on the browser side
end
end
Метод sign_in определен внутри Контроллера приложений
class ApplicationController < ActionController::Base
def sign_in(user)
session[:fbid] = user.fbid
@current_user = user
end
end
Журналы сервера ниже. Перенаправление на самом деле, кажется, происходит на стороне сервера. Но я не вижу никаких изменений на стороне клиента. Браузер не меняет страницу.
UsersController
class UsersController < ApplicationController
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
end
Оригинальная почта Ajax -
$.post("/sessions",{user:{name:profile.name, email:profile.email,fbid:profile.id}});
Перенаправление происходит успешно, если я использую оператор перенаправления javascript внутри $ post () в качестве функции обратного вызова.
$.post("/sessions",{user:{name:profile.name, email:profile.email,fbid:profile.id}},function( data ) {
window.location="/users";
}
);