rails cで日本語入力できるようにする作業「エラーとの戦い」


スクリーンショット 2018-04-13 21.51.03.png

Rails cコマンドにて日本語を入力すると、文字化けが起きるので日本語を入力できるように設定した
- 環境
MacOS High Sierra バージョン10.13.4
Homebrew
rbenv
Ruby version2.3.0

http://thr3a.hatenablog.com/entry/20160828/1472324261
こちらのサイトの投稿を参考に
入力された文字をirb側に渡すライブラリがデフォルトだと「libedit」というものらしい
この「libedit」が日本語に対応していないので、今回やる作業はこいつを日本語対応しているライブラリ「readline」に入れ替える作業

まずreadlineを適用したいrubyがインストール済みであればアンインストールする

$ rbenv uninstall 2.3.0


次にHomebrew経由でreadlineをインストールする

$ brew install readline



次にこちらのコマンドを実行(正直このコマンドの意味はまだわからない、いま調べてます)

$ brew link readline --force



そしてreadlineを利用してruby再インストール以下二つのコマンドを実行

$ RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)"
$ rbenv install 2.3.0



参考にしたサイトではこれで完了とのことだったが私の環境ではこれだけではうまくいかなかった。
まずは対処として以下コマンドで標準で使用するrubyバージョンを指定した。

$ rbenv global 2.3.0



これでruby -vコマンドを打つとちゃんと帰ってくるようになった。
だがしかし、これだけでは終わらなかった。現在開発中のrailsアプリケーションでrails cで日本語入力できなければ意味がないのでアプリケーションのディレクトリへ移動し早速試してみたが、ガッツリエラーが出ました。残念ながらこの時のlogを記録し忘れたのでないのですが、、、


悩んだ挙句、bundle installしようと思ったのですが、以下のようなエラーが出ました

rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions: 
2.3.1 

こちらのエラーについて調べていたらこのサイトがとても参考になりました。
https://teratail.com/questions/47183
結論、このエラーはbundlerが現在のrubyバージョンにインストールされてないということだったので以下コマンドでインストール
ちなみにrails -vをしても同じようなエラーが発生したので同様にrailsもインストール

$ gem install bundler


これでbundle installが使用できるようになったのでrailsアプリケーションディレクトリで実行、、が、しかし、ここでもまたまたエラーが。

$ bundle install
>>Could not reach host index.rubygems.org. Check your network connection and try again.

「ホストindex.rubygems.orgにアクセスできませんでした。 再びネットワーク接続を確認して試してみてください。」
とのことで、これについても調べた
https://translate.googleusercontent.com/translate_c?depth=1&hl=ja&prev=search&rurl=translate.google.co.jp&sl=en&sp=nmt4&u=https://github.com/vmg/redcarpet/issues/587&xid=17259,15700022,15700124,15700149,15700168,15700173,15700186,15700201&usg=ALkJrhiM5oVjMKA3FWjnPCqrFVP-IXIUvA
この人曰く再起動したら治ったと言っているので再起動してみた。
そしてもう一度bundle installをしたら次はさらに長文のエラーが、、、(泣


正直ここで発狂した。
も一度同じようにbundle installにトライしてみた。結果は同じだった。

$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching rake 12.3.0

Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::UnknownHostError no such name (https://rubygems.org/gems/rake-12.3.0.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::UnknownHostError no such name (https://rubygems.org/gems/rake-12.3.0.gem)
Retrying download gem from https://rubygems.org/ due to error (4/4): Gem::RemoteFetcher::UnknownHostError no such name (https://rubygems.org/gems/rake-12.3.0.gem)
Gem::RemoteFetcher::UnknownHostError: no such name
(https://rubygems.org/gems/rake-12.3.0.gem)
An error occurred while installing rake (12.3.0), and Bundler
cannot continue.
Make sure that `gem install rake -v '12.3.0'` succeeds before bundling.

In Gemfile:
  coffee-rails was resolved to 4.2.2, which depends on
    railties was resolved to 5.1.5, which depends on
      rake

「Gem :: RemoteFetcher :: UnknownHostError:そのような名前はありません
https://rubygems.org/gems/rake-12.3.0.gem)
rake(12.3.0)のインストール中にエラーが発生し、Bundler
続けることはできません。
バンドルの前に `gem install rake -v '12 .3.0 'が成功していることを確認してください。」

「Gemfileで:
   コーヒーレールは4.2.2に解決されました。
     柵は5.1.5に解決されました。
       レーキ」


翻訳機能で翻訳してみた。何か解決されたとあるが、上はインストール中にエラーが出たと言っている。
どういうことなんだ、、、調べまくったがなかなか答えが見つからない。
三度目の正直、、もう一度bundle installをやってみた。。。
なんと!!!三度目にしてインストールが問題なくできました!根気勝ちですね。
詳しい原因は今の私ではまだまだ理解しきれていません。
あと理解できてないままコードを実行すると対処法がわからなくなってしまうので、コードは理解してから実行しよう。と、この失敗から学びました。



ついに
Rails cで日本語が打て正常に動くようになりました!
Rails sも問題ないです!
ただ、新たな問題も発生しました。私はAtonを使用しているのですが、以下画像のエラーが発生多分プラグインのエラーっぽいけど、、、
次はこれを可決せねば、、
スクリーンショット 2018-04-14 15.06.40.png

このエラーもgemの問題でした以下コマンドでrsenseをインストールしたら治りました!!

$ gem install rsense

これにて一応解決!

みなさま助言や教えを是非お願いします!!:bow_tone1:

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.