【问题标题】:Rails Admin integration with Mobility gemRails Admin 与 Mobility gem 的集成
【发布时间】:2021-09-10 13:54:18
【问题描述】:

我正在尝试将 Mobility gem 与 Rails Admin 一起使用。 我可以通过 Rails Admin 界面编辑字段(如 Ngo 模型的 Impact_description),它正确地更改了翻译表:

但问题是,Rails 管理界面没有显示正确的翻译(它显示在 pt-BR 中,即使应用程序是英文的):

有没有人成功地将 Rails Admin 与 Mobility gem 集成?感谢关注

编辑: 在我的rails_admin.rb(初始化程序)中,我有所有操作的常规配置(仅更改新的):

config.actions do
    dashboard                     # mandatory
    index                         # mandatory
    new do
      except [RewardRule, SuggestedFeed]
    end
    export
    import
    bulk_delete
    show
    edit
    # delete
    clone
    show_in_app

    ## With an audit adapter, you can add:
    # history_index
    # history_show
  end

对于 Ngo 模型,我没有任何自定义配置,只是它包含在 Rails Admin 模型中:

# rails_admin.rb
config.included_models = [..., Ngo, ...]

【问题讨论】:

  • 您要更改 I18n.locale 吗?
  • 是的,我能够更改 I18n 语言环境,它甚至更新了正确的移动转换表。唯一不起作用的是该领域的“表演”。它正确更新了英语和葡萄牙语表,我也可以正确获取数据。只有在 Rails Admin 的“显示”中它没有显示
  • 能否请您包含配置“显示”操作的代码?
  • 添加了我的 rails_admin 初始化程序配置。我实际上并没有更改默认配置

标签: ruby-on-rails rails-admin mobility


【解决方案1】:

所以在对 Rails Admin api 进行一些研究后,我能够做到这一点。 例如,为了在 show 动作中处理 Ngo 模型,我做了:

config.model Ngo do
  show do
    fields do
      formatted_value{ bindings[:object].send(method_name) } # this calls the mobility method instead of getting the plain attribute, so it will translate on the admin.
    end
  end
end

在这种情况下,所有字段都将调用原始方法名称,而不是普通属性。例如,在我的例子中,它将调用ngo.impact_description,这将翻译字段,而不是读取普通属性ngo[:impact_description],它将始终使用默认语言。

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 1970-01-01
    • 2013-02-20
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    相关资源
    最近更新 更多