В качестве корня моего приложения установлен контроллер.Он принимает параметр uid и проверяет, существует ли пользователь.Если нет, я хочу, чтобы он перенаправил на новую страницу пользователя и предварительно заполнил поле uid с помощью uid в параметре.
В моем root_controller:
def index
if params[:uid]
@user = User.find_by_uid(params[:uid])
if (!@user.blank?)
# do some stuff
else
session[:user_id] = params[:uid]
redirect_to(new_user_path, :notice => 'Please register as a new user')
end
else
# error handling
end
end
В моем users_controller,GET / users / new action:
def new
@user = User.new
@user.uid = session[:user_id]
# standard respond_to stuff here
end
Все это прекрасно работает, но является ли это приемлемым способом сделать это?Первоначально я пытался передать uid в операторе redirect, например:
redirect_to(new_user_path, :notice => 'Please register as a new user', :uid => params[:uid])
или даже протестировать его с помощью:
redirect_to(new_user_path, :notice => 'Please register as a new user', :uid => 'ABCD')
, но ни один из них, похоже, не передавал значение users_controller ... Iне удалось получить к нему доступ с помощью params [: uid] с этого контроллера.
Является ли сессия подходящим местом для хранения подобных вещей, или есть лучший способ передать его через перенаправление?Спасибо!