在ActiveAdmin中,在键名中使用哈希时出现翻译缺失的问题可能是因为ActiveAdmin无法正确解析键名中的哈希。为了解决这个问题,可以通过使用ActiveAdmin的自定义翻译方法来处理。
下面是一个解决方法的示例:
config/initializers/active_admin.rb
文件中添加以下代码:module ActiveAdmin
module TranslateHashKey
def translate_attribute(attribute)
if attribute.is_a?(Hash)
attribute = attribute.map { |k, v| [translate_attribute(k), v] }.to_h
end
super(attribute)
end
end
end
ActiveAdmin::Views::IndexAsTable::IndexTableFor.prepend(ActiveAdmin::TranslateHashKey)
ActiveAdmin::Views::Pages::Index.prepend(ActiveAdmin::TranslateHashKey)
ActiveAdmin::Views::Pages::Show.prepend(ActiveAdmin::TranslateHashKey)
ActiveAdmin::Views::Pages::Form.prepend(ActiveAdmin::TranslateHashKey)
通过以上步骤,ActiveAdmin将能够正确地解析键名中的哈希,并显示相应的翻译文本。
请注意,这只是一种解决方法,可能不适用于所有情况。你可能需要根据自己的需求进行适当的修改。