28
16

More than 5 years have passed since last update.

Rails consoleで日本語入力ができるようにする

Last updated at Posted at 2018-08-04

Rails consoleでは日本語入力ができない

例えばRailsアプリケーションで、新しいユーザーとして「織田信長」を開発環境で作成したいとする

$ rails c
irb(main):001:0> User.new(name: "織田信長")
irb(main):002:0> User.save

これで作成できるだろうと思ったのだが、何もしていないとrails cでは日本語が文字化けしてしまい、日本語入力ができない。

調べてみた

いろんな記事を見てみたのだが、結局はrubyがreadlineを参照してくれれば、ちゃんと日本語を認識してくれるらしい。

参考記事:
https://qiita.com/irohiroki/items/c82657b5cb4bdb2aaac4

こちらの記事を参考に直そうと思ったのだが、思ったより簡単にできてしまったのでご紹介しようと思う。

実際の手順

Rubyをアンインストール

自分のrubyのversionを調べてアンインストールしましょう。

$ ruby -v                                                                                   
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin17]
$ rbenv uninstall 2.4.1   

readlineのインストール

homebrewを使っている場合

$ brew install readline

rubyの再インストール

$ rbenv install 2.4.1

gemを入れる

一度rubyをアンインストールしてしまったのでgemももう一度入れ直す必要があります。

$ gem install bundler
$ bundle install

実はこれで終わり!

改めてrails cしたら日本語をしっかり認識してくれた!
readlineをインストールしてからrubyを入れ直すと、自動的にreadlineを参照してくれるのかも?
参照しているパスなどを変更する必要もなかった。
(これで動かなかった人はターミナル再起動を試してみてください)

確認方法

今回インストールしたreadlineを参照している元はreadline.bundleとかいうやつ。
こいつがreadlineを参照してくれていれば、無事readlineに切り替わっているということになる。

まずは、readline.bundleの場所を調べる

$ find ~/.rbenv/versions -name readline.bundle
/Users/kouch/.rbenv/versions/2.4.1/lib/ruby/2.4.0/x86_64-darwin17/readline.bundle
/Users/kouch/.rbenv/versions/2.4.3/lib/ruby/2.4.0/x86_64-darwin17/readline.bundle

今回は2.4.1の方を確認したい。
otool -Lというコマンドを使うと、そのファイルが参照しているライブラリの一覧を見せてくれる。

$ otool -L /Users/kouch/.rbenv/versions/2.4.3/lib/ruby/2.4.0/x86_64-darwin17/readline.bundle 
/Users/kouch/.rbenv/versions/2.4.3/lib/ruby/2.4.0/x86_64-darwin17/readline.bundle:
    /usr/local/opt/readline/lib/libreadline.7.dylib (compatibility version 7.0.0, current version 7.0.0)
    /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)

上記のように、ここでreadlineが出てくれればOK

最後に

rails cやirbで日本語が使えないと何かと不便なので、早めに対応させておきたいですね。

28
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
16