Rails:Hash#to_json - 分成多行?

时间:2010-07-08 11:20:37

标签: ruby-on-rails json internationalization

我对javascript_I18n插件感到轻微烦恼,该插件生成了I18n转换表的js友好版本,以便您可以本地化您的javascript。一切正常,但它通过在每个语言环境的翻译哈希上调用to_json并将结果输出到文件中来工作。当您在散列上调用to_json时,生成的字符串都是单个lne,这意味着您最终会得到一个带有大量行的文件。

这反过来又阻止了git能够合并任何更改,因为合并在逐行的基础上工作,并且无法处理单个中间位置发生变化的大规模线。这不是一个大问题,因为我总是可以使用插件附带的rake任务重新生成js友好的翻译文件(用一个我可以提交的全新的合并文件替换中间合并文件),但是这有点烦人。在我看来,如果json是在不同的行上输出,而不是所有相同的行,那么它就不会有问题了,它甚至不会使文件更大,只插入两个字符(\ n )每行。

在我尝试使用gsub将生成的字符串分解为单独的行之前,有没有更好的方法在哈希上调用to_json并将结果输出到单独的行?或者更好的解决这个问题的方法一般? (我在javascript_I18n的文档中找不到很多用处。)

感谢任何建议 - 最多

1 个答案:

答案 0 :(得分:0)

不是回答你的问题,而是提出一个建议:

忽略所有生成的js翻译文件可能会更容易。

这是因为即使您将翻译分成多行,仍然存在合并冲突的可能性,您可能已经在yaml文件中解决了一次。

我会这样设置:

1)。 gitignore所有js翻译文件。

2)。在ActionController中,添加一个before过滤器,仅在开发模式下的每次加载时自动生成js文件。

3)。在代码更新后调整deploy.rb文件以生成js文件。

不再有合并冲突! (至少对于js翻译文件):D

钱亚伦