如何更改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
答案 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
中没有翻译。