2016-09-20 51 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”) 结束 –