Ruby on rails 如何在没有区域设置文件的情况下获得使用Ransack的I18n属性?
我使用RAILS3.2和Ransack 0.7来搜索我的数据库,我遇到了一个问题,我的模型显示的属性名称。视图中的“我的属性”字段在“标准条件”字段中调用: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
<%= 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