2013-04-14 3 views
0

У меня есть код, который выглядит так, что мне нужно, чтобы понять:Простой Rails вопрос о link_to

<ul class="dropdown-menu"> 
    <li><%= link_to t('menubar.yes.okay') , admin_ok_path %></li> 
</ul> 

В этом коде, что menubar.yes.okay и где, что определено? Аналогично, где определено admin_ok_path?

Причина, по которой я прошу, состоит в том, что я хотел бы добавить еще один пункт меню. И если я пишу что-то вроде

<li><%= link_to  t('menubar.yes.no') , admin_ok_no %></li> 

тогда я получаю сообщение об ошибке говорящее admin_ok_no не определен. Итак, что мне нужно определить, чтобы настроить этот новый пункт меню? Я уже добавил No: "No" в моем en.yml, но это все та же ошибка. Обратите внимание, что я проверил мои маршруты.rb и нет определения admin_ok_path, однако это прекрасно работает - оно появляется в строке меню.

+0

'menubar.yes.okay ', вероятно, будет определен в config/locales/en.yml. См. Http://guides.rubyonrails.org/i18n.html – osahyoun

+0

admin_ok_path - см. Файл маршрутов - config/routes.rb http://guides.rubyonrails.org/routing.html – osahyoun

ответ

0

Это определяется динамически. Если вы запустите

rake routes 

вы получите все доступные маршруты,

http://guides.rubyonrails.org/routing.html

admin_ok_path является вспомогательным путь определяется рельсами это сам для согласования маршрута admin_ok,

при запуске рейк-маршруты из каталога маршрутов приложений, вы получите соответствующий маршрут admin_ok.

admin_ok_path предоставит относительный URL-адрес, а admin_ok_url предоставит вам абсолютный URL-адрес.

+0

См. Обновленный вопрос. Что мне нужно определить, чтобы получить новый элемент меню. Я уже добавил обновление в en.yml, и он по-прежнему имеет такую ​​же ошибку – CodeGuy

+0

Сначала вам нужно преобразовать в локальный файл, как сказано Intrepidd, затем добавить маршрут к маршрутам для admin_ok_no, как получить «url_path» => «controller # action»,: as => admin_ok_no –

+0

Я уже сделал что ... как указано в моем первоначальном вопросе – CodeGuy

0

t Помощник, короткий для I18n.t используется для интернационализации

Например, в конфигурации/en.yml, если у вас есть:

menubar: 
    yes: 
    okay: Okay 

Это будет писать "Хорошо"

admin_ok_path - динамически созданный помощник для маршрута. Вы можете просмотреть их все, выполнив rake routes

+0

См. Обновленный вопрос. Что мне нужно определить, чтобы получить новый элемент меню. Я уже добавил обновление в en.yml, и он по-прежнему имеет ту же ошибку – CodeGuy

0

t не подходит для translate. Файлы локализации вы найдете в config/locales - это в основном файлы YAML, которые определяют строки. См. Еще here

Метод admin_path_ok - это помощник маршрута, который возвращает путь. См. Файл config/routes.rb. Больше информации here

+0

См. Обновленный вопрос. Что мне нужно определить, чтобы получить новый элемент меню. Я уже добавил обновление в en.yml, и он все еще имеет ту же ошибку – CodeGuy

+0

admin_path_ok не определен на моих маршрутах.rb – CodeGuy

+0

@CodeGuy, если он создается вашим файлом маршрутов (т. Е. Он не указан при запуске «рейк-маршрутов») это, вероятно, в вспомогательном файле. Проверьте 'app/helpers' и посмотрите, существует ли один из файлов (вероятно,' application_helper.rb') метод 'admin_path_ok'. Если нет, это может быть метод, определенный в контроллере (в 'app/controllerlers) и« экспортированный »с помощью' helper_method: admin_path_ok' – Flambino

0

'menubar.yes.okay', вероятно, будет определен в 'config/locales/en.yml'. И rake routes | grep admin предоставит вам все маршруты, связанные с администратором.

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