2013-08-12 4 views
0

Возможно не лучшая практика, но для быстрой работы прототипа мне нужно это:Имея доступ к глобальной переменной во всех контроллерах

способа в одном контроллере я задаю значение глобальной переменной, как это:

@@globalVar = someValue 

Теперь в методе индекса другого контроллера я хочу иметь доступ к этой переменной, но он дает мне ошибку Uninitialized Class Variable".

Как мы можем это сделать?

+0

на основе вашего разговора, вы должны смотреть на 'сессии [: your_variable]' для того, чтобы сохранить что-то для последующего использования для всего 1 пользователя. –

ответ

1

Я думаю, что вы имеете в виду значение, доступное для различных действий (взаимодействие пользователей с рельсами). Это делается с помощью session хэш:

def one_action 
    session[:global_value]=params[:value_to_remember] 
    ... 
end 


def index_of_other_controller 
    remembered_value = session[:global_value] 
    ... 
end 
+0

работал, спасибо. Так что просто общий вопрос: используя сеанс в этом сценарии, он работал, но это также правильный способ сделать это? или это достаточно хороший тип кодирования для моего прототипа? –

+1

сеанс предназначен для таких данных persistend. См. Документацию в [Rails Guide] (http://guides.rubyonrails.org/action_controller_overview.html#session) –

0

Глобальные переменные обозначаются как $ в Ruby. Попробуйте $globalVar = someValue.

+0

Хммм это еще ноль. Так что-то еще происходит? иначе он должен был работать с $? –

+0

Вы не можете сохранять данные в запросах таким образом. Это то, что вы пытаетесь сделать? – meagar

+0

не уверен, что вы имеете в виду, сохраняя, я просто хочу знать, что они выбрали на первой вкладке - значение - и когда они нажимают на вторую вкладку, я хочу передать это как ценность моему веб-сервису. –

Смежные вопросы