Как сделать, чтобы подтвердить сообщение с названием i18n совместимы


Я относительно новичок в Rails и программирую уже несколько месяцев.

Я пытаюсь использовать метод T() для интернационализации, но он, кажется, не работает, когда я прошу подтверждения в link_to.

Например, когда я пишу

    <%= link_to t( ".delete_student_info"), 
       @student,
       method: :delete, 
       confirm: "child_deletion_confirmation"
    %>

...Я предсказуемо получаю link_to, который работает и задает вопрос подтверждения

Однако, когда я пишу

    <%= link_to t( ".delete_student_info"), 
        @student,
        method: :delete, 
        confirm: t( ".child_deletion_confirmation")
    %>

...Я получаю следующий вывод

Подтверждение Удаления Дочернего Элемента" данные-способ="удалить" с href="/Ан/student_profiles/41" отн="вес">удалить студента информация

Есть ли что-то концептуальное, чего мне не хватает? Я посмотрел в Rails Guides Rails i18n API, но это не решает эту проблему. Я думаю, что, возможно, подтверждение: это что-то другое, но я не знаю, как это найти. Есть идеи?
1 2

1 ответ:

Я попробовал это на моей консоли Rails 4, и это сработало отлично:

helper.link_to "Visit Other Site", "http://www.rubyonrails.org/", data: { confirm: I18n.t("date.formats.default") }
# => "<a data-confirm=\"%Y-%m-%d\" href=\"http://www.rubyonrails.org/\">Visit Other Site</a>"`. 
Теперь обратите внимание, что поведение при использовании nil для :confirm похоже на то, что вы видите:
helper.link_to "Visit Other Site", "http://www.rubyonrails.org/", data: { confirm: nil }
# => "<a href=\"http://www.rubyonrails.org/\">Visit Other Site</a>"
Так что это заставляет меня думать, что каким-то образом ваш перевод соответствует nil. Тем не менее, я не могу понять, как дублировать эту проблему...

Я расширю этот ответ, чтобы попытаться помочь больше, если вы можете показать, как выглядит файл переводов?