Rails控制器关注自定义翻译键

时间:2015-04-21 10:39:54

标签: ruby-on-rails ruby activesupport-concern

我正在构建一个高级搜索功能,可以轻松地为各种实体采用。此功能将适用于所需控制器的#index操作,因此我决定采用控制器问题,将通用部分挂钩到每个控制器I #index的每个include AdvancedSearchFeature。< / p>

一切顺利,直到我发现翻译是一个很大的问题。每个高级搜索使用不同的翻译键,应该在某处提供,但是......我不知道哪里最好这样做。

我想:

  • 在关注中,不是,因为它意味着通用;
  • 在我关注的控制器中,不是,因为控制器不应该直接处理翻译;
  • 在链接到控制器的模型中,不是,因为提供Model.advanced_search_translation_keys并不自然,然后应将其分配给要在相应视图中使用的变量;
  • 在与控制器关联的#index视图中,不是,因为视图不应该被翻译哈希污染,然后应该将其传递给高级搜索功能通用部分。

这就是为什么,我最终将这些翻译放在......助手中。这些助手从高级搜索功能泛型部分调用,如果存在所需的翻译键,则从那里获取。但是......我真的不喜欢专门创建助手以返回翻译的想法。

你对如何做到这一点有更好的想法吗?也许你偶然发现了这个问题并以其他方式解决了它?

1 个答案:

答案 0 :(得分:1)

最好将翻译键嵌套在引用模块的命名空间下,并在通用视图中使用这些键。不需要任何传递,您的观点将更明确地指出翻译的来源。