Rails: Hash # to_json - разделить на несколько строк? - PullRequest
0 голосов
/ 08 июля 2010

У меня небольшое раздражение с плагином javascript_I18n, который генерирует js-дружественные версии таблиц перевода I18n, чтобы вы могли локализовать свой javascript. Все работает нормально, но работает, вызывая to_json для хеша переводов каждой локали и выводя результаты в файл. Когда вы вызываете to_json для хэша, результирующая строка является единственной lne, что означает, что вы получите файлы с огромной строкой в ​​конце.

Это, в свою очередь, не дает git возможности слияния любых изменений, потому что слияние работает построчно и не может иметь дело с одной массивной линией с изменениями где-то посередине. Это не большая проблема, потому что я всегда могу просто заново сгенерировать js-friendly файл перевода с помощью задачи rake, которая поставляется вместе с плагином (который заменяет файл mid-merge новым, который я могу просто зафиксировать), но это немного раздражает. Мне пришло в голову, что если json будет выводиться на разных строках, а не на одной и той же строке, то это не будет проблемой, и это даже не сделает файл намного больше, просто вставив два символа (\ n ) за строку.

Прежде чем я попытаюсь взломать полученную строку с помощью gsub, чтобы разделить ее на отдельные строки, есть ли лучший способ вызвать to_json для хэша и вывести результаты на отдельные строки? Или более хороший способ решить эту проблему вообще? (я не могу найти много полезного в документации для javascript_I18n).

Благодарен за любые советы - макс.

1 Ответ

0 голосов
/ 08 июля 2010

Не для того, чтобы ответить на ваш вопрос, но чтобы дать предложение:

Вероятно, было бы проще просто игнорировать все созданные файлы перевода js.

Это потому, что даже если вы отделитепереводя в несколько строк, все еще есть вероятность конфликтов слияния, которые вы, вероятно, уже однажды разрешили в вашем файле yaml.

Я бы настроил это так:

1).gitignore все файлы перевода js.

2).В ActionController добавьте фильтр before для автоматической генерации js-файлов при каждой загрузке только в режиме разработки.

3).Настройте файл deploy.rb для создания файлов js после обновления кода.

Больше нет конфликтов слияния!(по крайней мере для файлов перевода js): D

Аарон Цянь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...