我正在构建一个高级搜索功能,可以很容易地被各种实体采用。此功能将适用于#index
所需控制器的操作,因此我决定关注控制器,将通用部分挂钩到#index
每个控制器 I include AdvancedSearchFeature
。
一切都很顺利,直到我发现翻译是一个相当大的问题。每个高级搜索都使用不同的翻译键,应该在某处提供,但是......我不知道在哪里最好这样做。
我想过:
- 在关注点上,不是,因为它是通用的;
- 在我关注的控制器中,不是,因为控制器不应该直接处理翻译;
Model.advanced_search_translation_keys
在链接到控制器的模型中,不是,因为提供一个然后应该分配给要在相应视图中使用的变量的感觉并不自然;- 在
#index
与控制器关联的视图中,不是,因为视图不应被翻译散列污染,然后应将其传递给高级搜索功能通用部分。
这就是为什么,我最终在...帮助者中获得了这些翻译。这些助手是从高级搜索功能通用部分调用的,如果存在所需的翻译键,则从那里获取。但是......我真的不喜欢专门创建帮助器来返回翻译的想法。
你对如何做到这一点有更好的想法吗?也许您偶然发现了这个问题并以其他方式解决了它?