2016-01-25 1 views
0

я получаюRails хелпер перечисление для просмотра неинициализированный постоянной проблемы

uninitialized constant ActionView::CompiledTemplates::BLAHBLAH1 

Когда я использую BLAHBLAH1 в Еврорадио файл это не будет работать, но если я префикс с именем хелперов BlahBlahHelper::BLAHBLAH1 он работает. Помощник является blahblah_helper.erb с содержимым:

module BlahBlahHelper 
    BLAHBLAH1 = 0 
end 

Имя файла представления является blah_blah.html.erb. Я знаю, что у меня есть правильное соглашение об именах для представления для помощника, поскольку я тестировал это.

Будет ли проблема помощником в подкаталоге зрения?

Есть ли способ заставить его работать без префикса имени помощника?

+0

@AndreyDeineko Я получаю 'uninitialized constant BLAHBLAH1' – Vagish

+0

Что такое имя контроллера? Если это не «BlahBlahsController», и вы используете определенную версию Rails, которая является ожидаемым поведением! –

+0

@MichalSzyndel Я использую 'reports_controller.rb', но это делает файл представления. Ошибка возникает в представлении. – Vagish

ответ

2

Вспомогательный модуль загружается автоматически, когда он имеет соответствующее имя с именем контроллера.

Так что в вашем случае у вас есть 2 варианта:

1)

include BlahBlahHelper # in controller, same as `helper BlahBlahHelper` 

2)

переименовывать контроллер быть BlahBlahController.

Хорошо, как edikgat попытался указать в комментариях, здесь проблема заключается в разрешении констант.

Чтобы использовать константу, вы должны ссылаться на нее с полным именем, потому что константы не включаются в модуль, а только его методы.

Прочитать this guide о загрузке констант в Rails.

+0

Это ответ. – Pavan

+0

Пробовал номер 1, но он по-прежнему дает ту же ошибку. – Vagish

+1

абсолютно NO. все помощники включены во все виды классов вы можете сделать «self.class.ancestors» в вашем представлении, чтобы быть уверенным – edikgat

0

Это происходит потому, что помощники, такие как другие модули, включают в себя только виды своих методов. Невозможно включить константы