在RailsAdmin中更改模型的导航标签

时间:2016-09-20 08:40:20

标签: ruby-on-rails ruby 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 Admin导航标签更改为“Admin”。

我在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

1 个答案:

答案 0 :(得分: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

您也可以将此代码放在初始化程序中而不是模型中(由您决定)。

您可以看到here rails_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中没有翻译。