2月。
今年に入ってすでに「早いなぁ〜」と感じているマリンです。
なんたってもう2月ですから。
なんで突然こんなこと思ったかと言いますと、
来週息子の1日体験入園があるんです。
11月に幼稚園の願書提出+面接があって、
「体験は2月かぁ・・・まだだいぶ先だな!」
なんて余裕こいてたらもう来週!?
ひぃ〜!30代の時の流れひぃ〜!!です(;゜0゜)
「去年の今頃はおねぇちゃんの入園準備でドキドキしてたっけ〜・・・」
なんて余裕こいて感傷に浸ってるとまた幼稚園グッズ揃えるの出遅れる!
今回こそは間際にドタバタしないようにせねば・・・
しかし、本当に早すぎますね。
二人とも生まれたのなんてつい最近に感じるのに、
気づけば息子まで幼稚園です。
1日1日を大切にって思うんですけどね(^_^;)
でも本当、目先のことに囚われて
まだ「時間ある」なんて思っていては何も成さないまま終わってしまいそうです!
せっかく気づいたことだし、
育児も勉強も後悔しないように考えを改めてみようと思います!
コピペの罠
どうもマリンです。
昨日からRails Tutorial 11章を進めています。
最初は「コードも自分で打たないと理解できん!」と意気込んで手打ちしてましたが、
ちょっと前から「とりあえず全体掴むことからじゃね?」と思い、
コピペで進めてます。
今回はこのコピペでハマったお話です。
概要
メールのプレビューを見ようとしたところ、activation_token
に対してNoMethodError
が出た。
「コピペだからコードに問題はないはず」と思い込み、小さなミスに気付かずハマってしまった。
原因
原因は細かいミスの積み重ねでした。
まず一番の原因が、Seedデータのコピペが不完全で「, 」が抜けていたことです。
「コピペだから間違ってないはず」という思い込みが発見を遅らせてしまいました。
これのせいで$ rails db:seed
をしても読み込まれていなかったんですね。
さらに$ rails db:seed
をした後も結果を完全にスルーしていました。
ここでも「当然通っているだろう」と思ってましたね。
さらに、NoMethodError
も最後に書かれているnil Nil:Class
に注目しなかったのでずっとactivation_token
の部分ばかり気にしていました。
まとめ
やはり思い込みは一番の敵ですね。
今回は完全に「コピペだから間違ってるはずない」と思い込んだことが原因でした。
1文字間違えてても動かないのがコンピューターですから、やはり思い込みは捨てて懇切丁寧に作っていくことが大切だなって身にしみました。
ターミナルを再起動せよ!
こんな話が誰かの役に立つとも思えないほどあっけない話なんですけど・・・
まぁ、一応。
概要
Gitでmasterにマージしたら突然テストが通らなくなった。
詳細
チュートリアルの10章が終わったので、最後にGitやらHerokuやらにコミットとかプッシュとかしようとした。
トピックブランチからmasterにマージし、最後にHerokuにプッシュする前にもう一度
$ rails test
したら、突然テストが通らなくなった。
エラーの内容はindexページのテストに使われてるpaginateメソッドに対し、
「そんなメソッド知らん!」との事。
対処
いろいろやってみました。コードを見直したり、gemをインストールしなおしてみたり、
なんかよくわかんないけどrails db:migrate
してみたり。
で結局全部ダメで、最後に藁をも掴む思いでターミナルを再起動したら。
治りました。。。
まぁ、なんとなくわかってたんですけどね。
1回テスト通ってるから中身の問題ではないかもと。
また無駄な時間を使ってしまったorz
ローカルサーバを停止せずにターミナルを閉じてしまいました。
概要
タイトルの通りです。
これをやったことで何が起こるかと言いますと・・・
「ターミナルを再起動した時にローカルサーバーが立ち上がらない」
という状況に陥ります。
めっちゃハマりました。
私の場合
$ rails s -b 0.0.0.0
で起動させていて、この時に出るメッセージがこちら。
Address already in use - bind(2) for "0.0.0.0" port 3000
そして調べているうちに出てきた起動方法がこちら
$ rails s Puma
この時は特にメッセージは出てこなかったのですが、
実際にブラウザで確認してみると「localhostは機能していません」
と出てしまう状況でした。
対処法
こちらを参考にさせていただきました。
RackサーバーのPumaについて調べてみる - arakaji's diary
げ!ローカルサーバーを切らずにターミナルを消しちゃった! - Qiita
具体的な解決方法
まずはこの3000が既に使われているとのことでしたので、そこを調べました。
$ lsof -i :3000
出てきた結果はこちらです。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 7620 takagimarin 12u IPv6 0x7d655025f170834b 0t0 TCP localhost:hbci (L ISTEN) ruby 7621 takagimarin 12u IPv6 0x7d655025f170834b 0t0 TCP localhost:hbci (L ISTEN) ruby 11748 takagimarin 9u IPv4 0x7d655025f47508a3 0t0 TCP *:hbci (LISTEN) rub
PID接続してるものが原因とのことでしたので、killコマンドで消しました。
$ kill -QUIT 7620 $ kill -QUIT 7621 $ kill -QUIT 11748 $ kill -QUIT 11752
これで実行できるようになりました!
まとめ
PIDについては深く調べていないので、今後ひと段落したら調べてみます。
しかしこれでたまに動かなくなっていたローカルサーバーの原因がわかったので良かったです。
ターミナルを閉じる時はきちんとサーバーを終了してからにしましょう(笑)
ちょいちょい引っかかってくるRails4.2とRails5の違い
Rails Tutorialを始めた頃、私は自分の使っているRailsが4.2なのを知らずに勉強を進めていました。 サーバーをPumaに変えるってあたりで初めて気づいたのですが・・・ そこで思い切ってRails5にアップグレードしました。 作ってる途中でこんなことするのはもちろん初めてだったので、後遺症がちょいちょい出て困ってます。
今回の概要
10章のbeforeフィルターのテストでNo route machesになった。
対処
beforeフィルターのテストをusers_controller_test.rbに書くのですが、
ここのclassがclass UsersControllerTest < ActionController::TestCase
のままだったせいで、
get edit_user_path
とpatch user_path
がそんなルーティング設定されてないと怒られてしまいました。
ルーティングの方だということで確認したのですが、間違いなく設定はされていました。
users GET /users(.:format) users#index POST /users(.:format) users#create new_user GET /users/new(.:format) users#new edit_user GET /users/:id/edit(.:format) users#edit user GET /users/:id(.:format) users#show PATCH /users/:id(.:format) users#update PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy
全然わからなかったので、とりあえず教材のコードとめっちゃ見比べました。
コピペだから間違ってるはずないのに・・・と思いながら(笑)
そしてとうとうこの間違いに気づいたのですね!
classをclass UsersControllerTest < ActionDispatch::IntegrationTest
に直したら無事成功!
とはいかず・・・
今度はコントローラを作成した際に最初から書かれている
test "should get new" do get :new assert_response :success end
が引っかかりました。
第5章まで遡って
get :new
をget signup_path
に変更。
なぜ私がこの部分を変えていなかったのかは不明ですが・・・
とりあえずこれでAll Greenになりました。
まとめ
何かをアップデートする際はきちんと仕様変更された部分を確認しましょう。
それ普通か・・・
ブログタイトル変更しました。
これまで「とりあえず発信しなきゃ!」とタイトルも考えずに始めたブログでした。
この度ブログ活用術のイベントに参加いたしましたので、タイトル変更とともに改めてプログラミングを勉強しているのはなぜか?何を目指しているのか?など「私」について書いておこうと思います。
目標
タイトルに書きましたが、アプリリリースが目標です。
そして自宅でお小遣い稼ぎがしたい!それが最終目標です!
今年の目標
直近で今年の初めに月単位で目標たてたので公開します。
『アプリを一つ作る』
- 1月 Rails Tutorialを終わらせる
- 2月
- 3月 作るアプリと概要を決める
- 4月 ペーパープロトタイプなどを作って細かい機能まで決める
- 5月 コーディング開始
- 6月 完成
2か月で完成するのかは・・・頑張ります(汗)
6月で終わってますが、その後は今後のポートフォリオのためにできるだけ多く作品を作っていきたいです。
現状
私は今プログラミングの勉強をしております。
より詳しくお話しするとRuby on Railsを勉強中です。
Rails Tutorialの9章が終わったところです。
Tutorial9.2 remember userを消し忘れてハマったお話。 - 主婦がアプリをリリースするまでの軌跡
ちょっと先週がっつりハマって時間無駄にしちゃいましたが、今日から第10章に入ります。
きっかけ
そもそも何でプログラミングに目をつけたかなんですが・・・
ちょっと恥ずかしいんですけど、子どもの頃から大好きなアメリカのSFドラマがありまして、現在のプログラミングは関係ないほど未来のお話なんですが・・・
それでももしかしたら彼らのようなものの考え方に少しでも近づけるんじゃないか?なんて思ったのがきっかけです。
そこから色々調べていくうちに、ちゃんとやれば仕事になるかも!と思って本格的に勉強を始めた次第です。
勉強履歴
これまでの勉強したことをざっくりあげさせていただきます。
- C言語
- HTML
- CSS
- Bootstrap
- JavaScript
どれも入門レベルですが、HTML、CSS、Bootstrapらへんは今も結構出てくるのでそんなに忘れてはいないと思います。
まとめ
まずは年内に一つアプリを作ってみることを今年の目標に、そしてブログ継続することを永遠の目標に掲げて頑張ってまいります!