まさ@ブログ書き込み中

まさ@ブログ書き込み中

まさの旅、英語、プログラミング、プライベートについて、色々記録しています。

ActiveRecordでデータ挿入がやっとできたお話

 

こんにちは、まさです。

 

沖縄の北谷の美浜で外国人溢れるおしゃれなカフェで

Macをタタタターンってやっているやつがいたら十中八九僕です。

 

さて、今回のお話は昨日の記事に遡ります。

 

masa-world.hateblo.jp

 

ここで僕は「うまくいったぜ!」とか言っていたわけですが、うまくいっていませんでした。

 

15分で書き終えて作業に戻りたいので音速でまとめます。

 

問題:Sinatraを実行できたように見えてデータの挿入ができてない

昨日の記事で「うまくいった」と言ったのは bundle exec rubyを実行した際にエラー文が出なくなり、ローカルホストで動かせることができた、という意味でした。

 

そこで早速サインアップ機能を試そうと思いIDとPWを入力しポストしてみると、

 

activerecord::base.establish_connection('development')

 

というエラー文が出てしまいました。

 

んで、それは昨日僕がコメントアウトすることで表面上は解決したように見えたコード

 

f:id:masaincebu:20170515010509p:plain

 

に関係するのはわかっていました。

 

しかしこれを入れると問題が起きてしまう・・・むーん。

 

いま振り返ってみると、僕の「昨日学んだ」と考えていた思い込みが思考の妨げとなっていたのです。

 

解決策:databse.ymlのadapterはmysql2を書く

 

昨日の記事でdatabase.ymlの様子を見せました。

f:id:masaincebu:20170515011338p:plain

 

「色々いじったけど、どうにもならんかった」と書きましたが、

この「adapter」の項。ここをmysql2にしないといけなかったようです。

 

database.ymlはdatabaseについての記述ばっかりだったので、僕はてっきり

「adapter」は僕が繋ぐデータベース、すなわちMySQLだと思っていました。

しかし冷静になって考えてみるとAdapterとはつなげるもの、仲立ちするものなので

Rubyで使うmysql2を書くべきだったのですね。

 

 

確認してみると・・・?

 

f:id:masaincebu:20170515124955p:plain

 

MySQLGUIであるSequel Proでしっかり確認できました。

 

f:id:masaincebu:20170515124950p:plain

 

 

感想

基礎的なことでつまづくと「体系的に学んでいたら問題ない話なのになー」とたまに思うけど、結局同時に色々なことを学んでいるからこれが一番の近道だと信じています。「やっていくうちに学ぶ」方式でいきやす。

広告を非表示にする