2

我正在使用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什麼是我的屬性的正確名稱。

無論哪種方式,我還沒有找到任何方法來做到這一點,所以如果任何人有解決方案,我會非常感激。其他解決方案也是受歡迎的。

謝謝!

回答

0

如果有人想知道,我改變從洗劫translate.rb文件中

lib/ransack/translate.rb 

I18n.t("translation key") 

更換後正常

t("translation key") 

,現在我可以從我的數據庫中讀取屬性,如果它們具有以下關鍵字:

ransack.attributes.NAME_OF_THE_ATTRIBUTE 

也許不是最好的方法,但它對我來說工作正常!

相關問題