我正在使用Rails 3.2和Ransack 0.7來搜索我的數據庫,並且遇到了我的模型的顯示屬性名稱的問題。在查看我的屬性字段被稱爲在標準條件字段:如何獲得I18n屬性使用Ransack而不使用語言環境文件?
<%= f.attribute_fields do |a| %>
<%= a.attribute_select({}, { :class =>"formee-small" }) %>
<% end %>
和模型我的屬性字段由這個定義:
UNRANSACKABLE_ATTRIBUTES = ["id"]
def self.ransackable_attributes auth_object = nil
(column_names - UNRANSACKABLE_ATTRIBUTES) + _ransackers.keys
end
現在讓我們說我有一個名爲屬性「的用戶名「,我認爲這將顯示爲」用戶名「。現在,如果我想翻譯它,我需要將翻譯放在我的標準區域設置文件中,英文爲en.yml,德文版爲我的網站。
現在,這裏的問題:
此解決方案,只要罰款,我知道我的模型和它們的屬性。但是我有一個非常複雜的應用程序,它允許用戶創建自己的MVC(模型,視圖和控制器)以及他自己的翻譯。在任何情況下,這都可以正常工作,除了在用戶創建的MVC的Ransack搜索表單中顯示的名稱。
所以,可能的解決方案是:
1)我找到一個方法來更新我的語言文件每次用戶創建一個新的MVC都被他改變了翻譯的屬性之一時間的時間。
2)我繞過了語言環境文件,並直接告訴Ransack或Rails什麼是我的屬性的正確名稱。
無論哪種方式,我還沒有找到任何方法來做到這一點,所以如果任何人有解決方案,我會非常感激。其他解決方案也是受歡迎的。
謝謝!