【问题标题】:How to setup fixtures when using Mobility with a Key Value backend?使用带有键值后端的 Mobility 时如何设置固定装置?
【发布时间】:2022-07-08 23:15:10
【问题描述】:

有一个关于如何为 Mobility 设置固定装置的问题。非常感谢您提供有关如何进行此操作的任何提示,这对我来说也是宝贵的一课,以及如何解决一般的固定装置设置问题。

不使用任何 gem 来设置固定装置,只是这种情况下的默认 Rails 方法。我有一个具有多个可翻译属性的 Song 模型,title 使用 Mobilitydescriptioncontent 使用 Mobility Action Text

它工作得非常好,但是在设置固定装置时,我发现很难关联记录。这里有三个表songs,其中唯一使用的字段是状态。 mobility_string_translations 存储标题的翻译,action_text_rich_texts 存储翻译 descriptions 和 content

这就是我的翻译设置在Song 中的样子:

class Song < ApplicationRecord
  extend Mobility

  validates :title_pt, presence: true 
  validates :status, inclusion: { in: %w(draft published private) },
  presence: true

  translates :title, type: :string, locale_accessors: I18n.available_locales
  translates :description, backend: :action_text, locale_accessors: I18n.available_locales
  translates :content, backend: :action_text, locale_accessors: I18n.available_locales
# file continuation...

至于灯具songs.yml 是这样的:

one:
  status: "published"

然后根据我在网上找到的内容,我创建了mobility/string_translations.yml,内容如下:

one:
  translatable_id: one (Song)
  translatable_type: "Song"
  key: "title"
  value: "Title in English"
  locale: "en"
  created_at: <%= Time.now %>
  updated_at: <%= Time.now %>
two:
  translatable_id: one (Song)
  translatable_type: "Song"
  key: "title"
  value: "Titulo em Português"
  locale: "pt"
  created_at: <%= Time.now %>
  updated_at: <%= Time.now %>

这似乎有效,但我知道这不是因为当我检查 @song = songs(:one) 寻找翻译后的值(@song.title_pt@song.title_en)时,它们都是 nil。

知道在这里做什么吗? ????

【问题讨论】:

    标签: ruby-on-rails ruby mobility


    【解决方案1】:

    我认为问题在于您如何在 mobility_string_translation 表中声明 translatable 关系。

    它应该是完全显式的形式。

    translatable_id: 1
    translatable_type: Song
    

    或者是fixtures提供的简写。

    translatable: one (Song)
    

    在这里,您可以将两者混合在一起。

    它在Polymorphic belongs_to https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html 中有记录。

    由于某种原因,我设法使显式表单起作用,但不能使用速记。

    我一直在寻找有关如何让固定装置自己移动工作的说明,您的示例提供了繁重的工作,因此非常感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      相关资源
      最近更新 更多