Существуют разные способы интерпретации вашего вопроса, даже если вы не уверены, что вы имели в виду:
Все действия (в одном или разных контроллерах) могут использовать переменные экземпляра с одинаковыми именами.Но в каждом цикле запроса / ответа HTML вызывается только 1 действие.
Если вы хотите, чтобы переменная экземпляра была установлена в одном действии и имела такое же значение в другом действии (как часть другого запроса из того же веб-сайта)браузер), используйте магазин сессий.Например,
def index
@balance=1000
# @balance can be used in views
session[:balance] = @balance # now stored for the rest of the user's session
end
def increment
@balance = session[:balance] # initialize
@balance += 1
session[:balance] = @balance # update
end
####################################################
# a DRYer way is to use a filter to set the value
# Added, also we set the value to 0 if nil so it can later be added to.
# Remember that nil + 1 => error.
before_filter :load_balance
def load_balance
@balance = session[:balance] || BigDecimal.new('0') # use BigDecimal
# for money calculations
end
# the filter can be set per controller.