Предположим, это мой пользовательский контроллер: -
class UsersController < ApplicationController
def show
@user = session[:user]
end
def prepare
session[:user]= User.find(:first)
redirect_to :action => 'show'
end
def update
@user = session[:user]
@user.name = 'rai'
redirect_to :action => 'show'
end
end
Просмотр для show.html.erb
<%= @user.name %>
Show page
<%= link_to 'Update', :action=> 'update' %>
Теперь объясняя проблему: ---
Предположим, пользователь впервые открывает браузер с
http://localhost:3000/users/prepare
o / p будет: ---
Mohit Show page Update // supposing user table has values mohit as name
Теперь, когда он щелкнет по обновлению, он получит следующий вывод: -
rai Show page Update
Но этого не должно произойти, потому что
во-первых, когда находятся в подготовительном действии, где значение указано в дБ и его мохит . и затем он перенаправляется, чтобы показать то есть показывать значения из сеанса. то есть мохит
Теперь, когда пользователь щелкает обновление, он перенаправляется для обновления, когда значение из сеанса сохраняется в экземпляре пользователя, а атрибут имени этого экземпляра пользователя был изменен на rai . и, наконец, перенаправлен на показ страницы.
Теперь на этой странице, когда отображается имя пользователя, отображается его rai .. вот ВОПРОС, почему ??
причина сеанса должна хранить то же самое значение mohit, потому что мы не сделали никаких изменений в сеансе ..