Поэтому я использую omniauth-facebook для создания журнала с использованием Facebook.
Вот мой sessions_controller.rb
Rails-Ruby Instance Variable
class SessionsController < ApplicationController
def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to "/sessions/menu"
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
def new
end
def menu
puts user.name
end
end
К сожалению, я не знаю, как получить доступ к пользовательской переменной в действии меню. Как вы, ребята, порекомендуете мне это сделать?
Update
class SessionsController < ApplicationController
def create
@user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = @user.id
redirect_to "/sessions/menu"
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
def new
end
def menu
puts @user
end
end
Даже когда я обновляю его, как это так, он не работает
сделать это _ivar_ как '@ user' ... –
Только одно действие в контроллере срабатывает одновременно, после того как маршрутизатор создает экземпляр этого контроллера для заданного маршрута. В результате '@ user' или любая другая переменная, будь то переменная экземпляра или локальная, не будет определена в действии вашего меню, если вы не присвоите ей значение. –
@JakeShorty Да, это причина .. –