Ruby on rails 如何在没有区域设置文件的情况下获得使用Ransack的I18n属性?

Ruby on rails 如何在没有区域设置文件的情况下获得使用Ransack的I18n属性?,ruby-on-rails,internationalization,ruby-on-rails-3.2,ransack,Ruby On Rails,Internationalization,Ruby On Rails 3.2,Ransack,我使用RAILS3.2和Ransack 0.7来搜索我的数据库,我遇到了一个问题,我的模型显示的属性名称。视图中的“我的属性”字段在“标准条件”字段中调用: <%= f.attribute_fields do |a| %> <%= a.attribute_select( {}, { :class =>"formee-small" } ) %> <% end %> 现在让我们假设我有一个名为“username”的属性,在我的视图中它将显示为“user

我使用RAILS3.2和Ransack 0.7来搜索我的数据库,我遇到了一个问题,我的模型显示的属性名称。视图中的“我的属性”字段在“标准条件”字段中调用:

<%= f.attribute_fields do |a| %>
  <%= a.attribute_select( {}, { :class =>"formee-small" } ) %>
<% end %>
现在让我们假设我有一个名为“username”的属性,在我的视图中它将显示为“username”。现在,如果我想翻译它,我需要把翻译放在我的标准语言环境文件中,英语版本是en.yml,德语版本是de.yml

现在问题来了:

只要我知道我的模型及其属性,这个解决方案就可以正常工作。但我有一个非常复杂的应用程序,它允许用户创建自己的MVC(模型、视图和控制器),并使用它创建自己的翻译。在任何情况下,这都可以正常工作,除了在用户创建的MVC的搜索表单中显示的名称

因此,可能的解决方案是:

1) 每当用户创建一个新的MVC和每次更改属性的一个翻译时,我都会找到一种方法来更新我的语言环境文件

2) 我绕过区域设置文件,直接告诉Ransack或Rails我的属性的正确名称

不管怎样,我还没有找到任何方法来做这件事,所以如果有人有一个解决方案,我会非常感激。其他解决方案也受到欢迎


谢谢你的问候

如果有人想知道,我在中更改了ransack的translate.rb文件

lib/ransack/translate.rb 
并取代了正常的

t("translation key")

现在我可以从数据库中读取属性,如果它们具有以下键:

ransack.attributes.NAME_OF_THE_ATTRIBUTE
也许不是最好的方法,但对我来说很好

I18n.t("translation key")
ransack.attributes.NAME_OF_THE_ATTRIBUTE