Ruby on Rails開発のインターン (Day 7)
こんにちは、皆さん!
今日は調子よし、そして、またメモリリークやっていくぜ!
- トピック:
- 疑問:
- 問題:
- ウェブサイト上でpdfを作った際にメモリリークが起きていること
- 学習した内容:
config/locales/en.yml
は英語版のウェブサイトのテキストを保管しているtop
コマンドでLinuxにおいて、メモリの用途を確認できる
- 今後やりたいこと:
- 2か国語以上のウェブサイトを作る
- 多言語化について別で記事を書く
- リソース:
- How I spent two weeks hunting a memory leak in Ruby
- Rails Internationalization (I18n) API — Ruby on Rails Guides
Railsで多言語対応のテキストを実行
i18tというAPIがあり、これのおかげで簡単にウェブサイトを多言語化できる!
config/locales/en.yml
は主に英語版のテキストを保管し、このストラクチャーがウェブサイトの多言語化を簡単にしてくれる。例えば、他にja.yml
というファイルがあったとする。このファイルは日本語版のテキストを保管する。そうすれば簡単に英語と日本語のウェブサイトに行き来できる。
以下は一つの例、config/locales/en.yml
en: hello: "Hello!"
while config/locales/ja.yml
jp: hello: "こんにちは"
これで同じ変数に2か国語の内容が与えられた。
そしたら、やることはどっちの言語を使うか指定することだけ!
これをするためにはI18n.locales = :ja
のように日本語を指定することで日本語になり、逆も同じようにできる。
en.yml
ファイル内のテキストにアクセスするには
<%= t('hello').html_safe %>
かな...
ここでは、t
関数で'hello'
というキーワードをインプットして、yml
ファイル内の該当する部分のテキストを返してもらっている。
html_safe
関数は以下のようにテキスト内にHTMLタグを入れた時にそれをちゃんとHTMLタグとして取り出すようにしている。
en: hello: '<p>Hello!</p>'
僕のマネージャーがメモリリークを発見した方法
$ top
というコマンドをタイプして、コンピューターのメモリーの用途を確認すること
下記のは例のpdfを作成するページをリロードする前
それで、リロードした後は
見ての通り、赤くマークしたところの数字が上昇。これはメモリリークの可能性を強く表している。
この問題はおそらく今回のインターンでの一番の山場だろう(笑)
まとめ
次はもっと前進できることを祈って!
ご精読ありがとうございました。では、また次回まで✌