Обновление: проблема ниже возникает, когда я добавляю:
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
Я пытаюсь перенаправить на целевую страницу после того, как пользователь вошел в систему, но переменные, которые я установил в application_controller.rb, не отражаются на странице, на которую я перенаправляю.
Мой сеанс_controller.rb выглядит так:
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to '/landingpage', :notice => "Logged in!"
Мой application.html.erb выглядит так
<!DOCTYPE html>
<html>
<head>
<%= yield :head %>
</head>
<body>
<%= yield :body1%>
</body>
Мой вид целевой страницы выглядит так:
<% content_for :head do %>
<% if current_user %>
<script>'function test(){alert('user is signed in')}'</script>
<% else %>
<script>'function test(){alert('user is not signed in')}'</script>
<% end %>
<% content_for :body1 do %>
<% if current_user %>
User is signed in
<% else %>
User is not signed in
<% end %>
<button onClick="test();">test</button>
<% end %>
Результат: После входа на странице отображается «Пользователь вошел в систему», но функция по-прежнему возвращает пользователя, не вошедшего в систему. Однако, если я нажимаю кнопку «Обновить» в браузере, он загружает все правильно .
Я пытаюсь понять, почему использование перенаправления не обновляет информацию заголовка.