Контроллер Rails заботится о пользовательских ключах перевода

Я создаю функцию расширенного поиска, которая будет легко адаптирована для различных организаций. Эта функция будет применяться к #index действие желаемых контроллеров, поэтому я решил пойти с проблемой контроллера, подключая общий партиал к каждому #index каждого контроллера я include AdvancedSearchFeature,

Все работает гладко, пока я не узнаю, что переводы - это довольно серьезная проблема. В каждом расширенном поиске используются разные ключи перевода, которые должны быть предоставлены где-то, но... Я понятия не имею, где это лучше всего сделать.

Я думал:

  • в беспокойстве нет, потому что это должно быть общим;
  • в контроллере, куда я включаю проблему, нет, потому что контроллеры не должны иметь дело с переводами напрямую;
  • в модели, связанной с контроллером, нет, потому что неестественно Model.advanced_search_translation_keys который затем должен быть присвоен переменной, которая будет использоваться в соответствующем представлении;
  • в #index представление, связанное с контроллером, нет, потому что представление не должно быть загрязнено хешами перевода, которые затем должны быть переданы в общую часть расширенного поиска.

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

У вас есть идея, как это сделать? Может быть, вы наткнулись на эту проблему и решили ее как-то еще?

1 ответ

Решение

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

Другие вопросы по тегам