Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

제다이

나는이 json내에서 열 Categories테이블을하고 난 JSON 파일에서 번역 각 카테고리의 기록을 업데이트 할. 범주 배열을 포함하고 각 범주에 이름과 번역이 포함되도록 json 파일을 만들었습니다.

{
  "categories": [
    {
        "name": "starter",
        "message": "Abs/Анти блокираща система (система против боксуване)"
    },
    {
        "name": "alternator",
        "message": "Алтернатор"
    }
    ...
  ]
}

모든 카테고리 레코드가 언어 키와 파일의 번역으로 업데이트되기를 바랍니다.

{ bg: 'translation from file' }

이 코드가 있습니다

file = File.read('app/services/translations/files/bg.json')
data = JSON.parse(file)
language = File.basename(file, '.json')
Translations::CategoriesMigrator.call(file: data, language: language)

module Translations
  class CategoriesMigrator < Service
    def initialize(category_repo: Category)
      @category_repo = category_repo
    end

    def call(file:, language:)
      file['categories'].each do |category|
        found_category = @category_repo.find_by(name: category['name'])
        found_category.translated_categories[language] = category['message']
        found_category.save
      end
    end
  end
end

지금은 단일 카테고리 레코드에 모든 카테고리가 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

최신 정보

내 db 마이그레이션은 다음과 같습니다.

class AddTranslatedCategoriesToCategories < ActiveRecord::Migration[5.1]
  def change
    add_column :categories, :translated_categories, :jsonb, null: false, default: {}
    add_index :categories, :translated_categories, using: :gin
  end
end
최대

관계형 모델에 맞지 않는 데이터가있는 경우 JSON / JSONB를 선택하는 것이 좋습니다. 대부분의 다른 경우에는 데이터 쿼리를 훨씬 어렵게 만들고 데이터 무결성 또는 정규화를 제공하지 않기 때문에 안티 패턴입니다.

이 경우는 밑받침 구조가 동적이 아니기 때문에 분명히 나중입니다. 번역을 추적하려면 제목, 언어 및 번역 만 알면됩니다.

class Category
  has_many :category_translations
end

# rails g model category_translation category:belongs_to locale:string text:string
class CategoryTranslation
  belongs_to :category
end

고유성을 적용하기 위해 category_id 및 로케일에 복합 색인을 추가 할 수 있습니다.

보다:

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Azure 웹 작업에서 json 파일을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Node.js에서 JSON 객체로 mySQL 테이블을 업데이트하는 방법은 무엇입니까?

분류에서Dev

JSON 배열로 MySQL을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Pandas에서 DataFrame 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

파일에서 json 값을 바꾸거나 업데이트하는 방법은 무엇입니까?

분류에서Dev

모든 요소에서 다른 JSON 배열 업데이트의 결과 인 여러 PostgreSQL JSON 배열을 병합하는 방법은 무엇입니까?

분류에서Dev

json 데이터를 데이터 프레임에 추가하고 R에서 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

필드 배열에서 업데이트하는 방법은 무엇입니까?

분류에서Dev

전체 데이터베이스에서 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails에서 JSON을 사용하여 데이터베이스를 채우는 방법은 무엇입니까?

분류에서Dev

Python에서 GUI 창을 업데이트하는 방법은 무엇입니까?

분류에서Dev

hql에서 부울을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Java에서 시간을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails에서 모든 관련 모델을 업데이트하는 방법은 무엇입니까?

분류에서Dev

phpmyadmin 및 MySQL에서 삽입 및 업데이트 열을 생성하는 방법은 무엇입니까?

분류에서Dev

키없이 PHP에서 JSON 배열을 읽는 방법은 무엇입니까?

분류에서Dev

Postgres에서 JSON 문자열을 선언하는 방법은 무엇입니까?

분류에서Dev

jQuery에서 JSON 문자열을 처리하는 방법은 무엇입니까?

분류에서Dev

JSON 배열에서 값을 제거하는 방법은 무엇입니까?

분류에서Dev

BigRQuery Google Big Query에서 테이블의 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Swift 프로그램에서 SQLite 테이블의 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

열 업데이트시 MySQL에서 이전 값을 유지하는 방법은 무엇입니까?

분류에서Dev

SQL에서 두 변수의 차이로 열 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

MongoDB에서 문자열의 하위 집합을 업데이트하는 방법은 무엇입니까?

분류에서Dev

모달에서 행의 각 열에 대한 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails에서 업데이트를 위해 뷰에서 컨트롤러로 빈 텍스트 배열을 전달하는 방법은 무엇입니까?

분류에서Dev

콜백 중에 창을 업데이트하는 방법은 무엇입니까?

분류에서Dev

JSON 데이터에서 문자열을 선택기로 사용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

  2. 2

    Azure 웹 작업에서 json 파일을 업데이트하는 방법은 무엇입니까?

  3. 3

    Node.js에서 JSON 객체로 mySQL 테이블을 업데이트하는 방법은 무엇입니까?

  4. 4

    JSON 배열로 MySQL을 업데이트하는 방법은 무엇입니까?

  5. 5

    Pandas에서 DataFrame 열을 업데이트하는 방법은 무엇입니까?

  6. 6

    파일에서 json 값을 바꾸거나 업데이트하는 방법은 무엇입니까?

  7. 7

    모든 요소에서 다른 JSON 배열 업데이트의 결과 인 여러 PostgreSQL JSON 배열을 병합하는 방법은 무엇입니까?

  8. 8

    json 데이터를 데이터 프레임에 추가하고 R에서 값을 업데이트하는 방법은 무엇입니까?

  9. 9

    필드 배열에서 업데이트하는 방법은 무엇입니까?

  10. 10

    전체 데이터베이스에서 열을 업데이트하는 방법은 무엇입니까?

  11. 11

    Rails에서 JSON을 사용하여 데이터베이스를 채우는 방법은 무엇입니까?

  12. 12

    Python에서 GUI 창을 업데이트하는 방법은 무엇입니까?

  13. 13

    hql에서 부울을 업데이트하는 방법은 무엇입니까?

  14. 14

    Java에서 시간을 업데이트하는 방법은 무엇입니까?

  15. 15

    Rails에서 모든 관련 모델을 업데이트하는 방법은 무엇입니까?

  16. 16

    phpmyadmin 및 MySQL에서 삽입 및 업데이트 열을 생성하는 방법은 무엇입니까?

  17. 17

    키없이 PHP에서 JSON 배열을 읽는 방법은 무엇입니까?

  18. 18

    Postgres에서 JSON 문자열을 선언하는 방법은 무엇입니까?

  19. 19

    jQuery에서 JSON 문자열을 처리하는 방법은 무엇입니까?

  20. 20

    JSON 배열에서 값을 제거하는 방법은 무엇입니까?

  21. 21

    BigRQuery Google Big Query에서 테이블의 열을 업데이트하는 방법은 무엇입니까?

  22. 22

    Swift 프로그램에서 SQLite 테이블의 열을 업데이트하는 방법은 무엇입니까?

  23. 23

    열 업데이트시 MySQL에서 이전 값을 유지하는 방법은 무엇입니까?

  24. 24

    SQL에서 두 변수의 차이로 열 값을 업데이트하는 방법은 무엇입니까?

  25. 25

    MongoDB에서 문자열의 하위 집합을 업데이트하는 방법은 무엇입니까?

  26. 26

    모달에서 행의 각 열에 대한 값을 업데이트하는 방법은 무엇입니까?

  27. 27

    Rails에서 업데이트를 위해 뷰에서 컨트롤러로 빈 텍스트 배열을 전달하는 방법은 무엇입니까?

  28. 28

    콜백 중에 창을 업데이트하는 방법은 무엇입니까?

  29. 29

    JSON 데이터에서 문자열을 선택기로 사용하는 방법은 무엇입니까?

뜨겁다태그

보관