рельсы 3.1, как определить глобальную константу? - PullRequest
1 голос
/ 07 ноября 2011

Я пытался определить константу в config\environments\development.rb

NEXT_PAGE_ID = 'next_page'

но когда я пытаюсь получить к нему доступ, я получаю эту ошибку

неинициализированная константа ActionView :: CompiledTemplates :: NEXT_PAGE_ID

Я пытался определить его в /config/initializers/course_builder так:

NEXT_PAGE_ID = 'next_page'

но я получил ту же ошибку.

Перезапуск сервера не помог. Что я могу сделать?

Редактировать

Вот полная ошибка:

неинициализированная константа ActionView :: CompiledTemplates :: NEXT_PAGE_ID

Извлеченный источник (около строки # 23):

20:             %></li>
21: 
22:         <li><%= if @page.position < @page.chapter.pages.count then
23:             next_page= Page.find(Page.where(:position => @page.position+1, :chapter_id => @page.chapter.id))
24:             link_to 'Next Page', next_page, {:id=>NEXT_PAGE_ID}
25:             end
26:         %></li>

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Вы можете сделать:

Object.const_set('NEXT_PAGE_ID', 'next_page')

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

0 голосов
/ 07 ноября 2011

Я бы вместо этого использовал переменную сеанса.Глобалы не нужны в этом случае (или в большинстве случаев) и, очевидно, проблематичны.

session[:current_page_id]

Или

session[:next_page_id]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...