0

我正在将一个 Rails 项目从 Globalize 迁移到 Mobility。translation使用 Globalize,我可以通过以下方法访问当前翻译:

feature.translation

我主要在管理模型的翻译以删除特定翻译时使用它:

feature.translation.destroy

使用 Globalize,对于每个对象,我都会获得翻译列表并为每个对象创建一个删除按钮:

<%= link_to 'x', admin_feature_path(list_item, translation_locale: l), method: :delete, data: { confirm: %(Are you sure you want to delete this #{humanize_locale l} translation? This cannot be undone.) } %>

我使用通过链接传入的语言环境来删除相应的翻译:

Mobility.with_locale(translation_locale) do
  @feature.tranlsation.destroy
end

是否有从具有多个翻译的模型中删除单个翻译的直接方法?

4

1 回答 1

1

移动性在这里并没有什么特别之处。您有一个带有关联的模型translations,每个模型translation都有一个locale.

所以要销毁一个翻译,你可以找到它并销毁它:

translation = feature.translations.find { |t| t.locale == Mobility.locale.to_s }
translation.destroy

如果您想要像 Globalize 这样的方法,只需将其添加到您的模型中:

def translation
  translations.find { |t| t.locale == Mobility.locale.to_s }
end

而已!

于 2018-02-16T12:29:36.263 回答