Насколько я знаю, вы можете вызывать помощников по переводу напрямую с вашего контроллера, если вы правильно используете пространство имен с помощью I18n
.
Таким образом, ваш ProductsController может содержать что-то вроде следующего:
class ProductsController < ApplicationController
def index
i18n_slug = I18n.t("locale.category.#{params[:category_slug]}")
@category = Category.find_by_slug(i18n_slug)
end
end
Вы, вероятно, должны быть осведомлены о потенциальных угрозах безопасности, связанных с передачей параметров непосредственно в механизм перевода, хотя я ничего об этом не знаю. Вы могли бы также рассмотреть
переместить его в фильтр before или в контроллер приложения, если он будет использоваться в нескольких действиях контроллера.