неопределенный метод `t' для Admin::FaqsController:Class

в моем проекте у меня есть контроллер в администраторе пространства имен, и я использую хлебные крошки для создания хлебных крошек. Мой контроллер выглядит так: модуль Admin

class FaqsController < Admin::ApplicationController
    include FaqsHelper
    load_and_authorize_resource

   add_breadcrumb t('faqs.faqs_list') , :faqs_path #this line makes the problem
    def index
      @faqs = @faqs
      add_breadcrumb t('faqs.faqs_list')

    end

    def new
      add_breadcrumb t('faqs.new')
    end

 #other code ommitted
  end
end

я могу использовать метод t в новом, редактировании и другом действии контроллера, но когда этот «t» не находится в действии контроллера, у меня возникает следующая ошибка:

undefined method `t' for Admin::FaqsController:Class

Любые идеи?


person Mateusz Urbański    schedule 19.02.2014    source источник


Ответы (3)


Используйте I18n.t вместо t.

person Andrea Salicetti    schedule 19.02.2014
comment
Я получал ту же ошибку при использовании в пользовательском файле библиотеки. Это решает проблему. Спасибо! - person Hardik; 25.04.2014
comment
Если вам неудобно каждый раз вызывать I18n.t, вы можете добавить эту строку в свой ApplicationController: delegate :t, to: I18n - person Aetherus; 24.08.2017
comment
Эй, но с I18n.t или delegate :t, to: I18n вы не можете использовать lazy_lookout, вы должны назвать все это. t('.home.index.logged_in') вместо t(.logged_in) - person Daniel Sibaja; 02.02.2019

Я могу предложить расширить ваш класс с помощью extend ActionView::Helpers::TranslationHelper. Это позволит вам использовать помощников #t и #l.

person Skydan    schedule 22.07.2014

Спасибо, Skydan, но extend будет работать только для модулей. Я заставил это работать, добавив include ActionView::Helpers::TranslationHelper в свой контроллер.

person Vitalii Prodan    schedule 25.07.2019