2016-09-20 29 views
0

如何更改rails_admin中的導航標籤?在Rails中更改模型的導航標籤Admin

這裏是app/models/admin.rb

module Admin 
    def self.table_name_prefix 
    'admin_' 
    end 
end 

app/models/admin/seo.rb

class Admin::Seo < ActiveRecord::Base 

end 

我想改變Admin::Sea模型 「管理」 的Rails的管理導航標籤。

我試着在config/locales/ru.yml如下:

activerecord: 
    models: 
     admin: 
     one: test 
     other: test1 
     admin/seo: 
     one: SEO - данные 
     other: SEO - данные 

我也試過在config/initializers/rails_admin.rb

config.model Admin do 
    label 'test1' 
    label_plural 'test1' 
    navigation_label 'test1' 
end 
+0

'管理員'不是一個模型,它是一個模塊。 – Aleksey

回答

1

在我的項目它的工作原理是這樣

activerecord: 
    models: 
    admin/seo: 
     one: SEO - данные 
     other: SEO - данные 

而且你不需要你的初始化器。
也應該是ru.yml而不是en.yml,因爲它翻譯爲俄語,因此它只能用於俄語區域設置。

更新1

我找到了一些答案,但我不知道這是最好的一個(但它的工作原理)

class Admin::Seo < ActiveRecord::Base 
    rails_admin do 
    navigation_label I18n.t('your.translation.path.here') 
    end 
end 

你也可以把這個代碼中初始化不模型(它你決定)。

您可以看到hererails_admin如何生成此邊欄。
所以每個模型應該有navigation_label或它將是默認t('admin.misc.navigation')

更新2

可以初始化過程中設置navigation_label爲所有的車型這樣

# config/environment.rb 
... 

RailsAdmin::Config.models.each do |model| 
    if model.abstract_model.model_name.starts_with? 'Admin::' 
    model.navigation_label I18n.t('your.translation.path.here') 
    end 
end 

這將Admin命名空間等車型全系車型分成側邊欄兩個單獨的菜單。
代碼被放置在environment.rb中,因爲翻譯在initializers/*.rb中不可用。

+0

我想將標籤更改爲管理員 [img](http://savepic.ru/11435878.jpg) –

+0

請參閱答案中的更新。 – Aleksey

+0

我加$這個代碼在我seo.rb但沒有改變 rails_admin做 navigation_label I18n.t(「activerecord.models.admin」) 結束 –