Пусть это мой контроллер пользователи: -Вопрос заседания в рельсах?
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
о/р будет: ---
Mohit Show page Update // supposing user table has values mohit as name
Теперь, когда он нажмите на обновление, он получит в качестве вывода, как это: -
rai Show page Update
Но это не должно произойти причиной
во-первых, когда находятся в подготовке действий, где значение fecthced из БД и его mohit. и затем он перенаправляется, чтобы показать, что это означает, что значения из сеанса. т.е. Мохит
Теперь, когда пользователь нажимает на обновление, он перенаправляется на обновление, когда значение из сеанса сохраняется в экземпляр пользователя и имя атрибута этого экземпляра пользователя был изменен раи. и, наконец, перенаправлен на страницу.
Теперь на этой странице, когда отображается имя пользователя, отображается его rai .. thats THE QUESTION why ?? причина сеанса должны хранить то же значение Мохит причину мы havnt сделали какие-либо изменения в сессии ..
Я тот Что происходит .. я могу понять, но я не могу понять, почему это происходит .. !!! –
В рубиновых переменных хранятся ссылки, а не значения. Поэтому, когда вы назначаете, вы копируете ссылки. http://ruby-doc.org/docs/Newcomers/ruby.html#objects – Voyta