Web Marina

日々の業務や勉強などで得た知識をアウトプットしていきます。

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に必死で手を出す余裕がない・・・

それもこれも全てちょっとした誘惑に勝てないせい。

スマホゲームやりたい」「科捜研の女見たい」「相棒見たい」「眠たい・・・」などなど。

お家は誘惑だらけすぎ!!

そしてブログをカスタマイズしたいです・・・

どうでもいい話を失礼しました。

ローカルサーバを停止せずにターミナルを閉じてしまいました。

概要

タイトルの通りです。

これをやったことで何が起こるかと言いますと・・・

「ターミナルを再起動した時にローカルサーバーが立ち上がらない」

という状況に陥ります。

めっちゃハマりました。

私の場合

$ 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_pathpatch 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 :newget 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ドラマがありまして、現在のプログラミングは関係ないほど未来のお話なんですが・・・

それでももしかしたら彼らのようなものの考え方に少しでも近づけるんじゃないか?なんて思ったのがきっかけです。

そこから色々調べていくうちに、ちゃんとやれば仕事になるかも!と思って本格的に勉強を始めた次第です。

勉強履歴

これまでの勉強したことをざっくりあげさせていただきます。

どれも入門レベルですが、HTML、CSS、Bootstrapらへんは今も結構出てくるのでそんなに忘れてはいないと思います。

まとめ

まずは年内に一つアプリを作ってみることを今年の目標に、そしてブログ継続することを永遠の目標に掲げて頑張ってまいります!