(publickey)と出た際の原因と対策こんにちは、カイノです。今日(1/26)からRailsチュートリアルを学習開始しました。できなかったため、これに対しての原因と対策+α行ったことを書きます。「ssh-keygen」の2回目の実行後に公開鍵をBitbucket(もしくはGitHub)に登録しなかったから。いうことか説明致します。Gitリポジトリを扱うGitHubとBitbucketのどちらのサービスでも、ローカルとSSH接続する際に公開鍵が必要になります。RailsチュートリアルではAWSのEC2上でBitbucketを使用しています。GitHub)に登録するやり方は下記リンクを参考にしてください。https://qiita.com/konuma1022/items/986eb58d4b94bef0c0a5https://qiita.com/ksugawara61/items/a4f34e5e120bea1732d5ここまでは良かったのですが、問題はこのあとにあります。一度公開鍵を作成した後、確認と練習を兼ねてもう一度公開鍵を作るコマンド「ssh-keygen」を行いました。その後、作成した練習用鍵は削除しました。←これが根本原因です。「ssh-keygen」を2回行うと1回目に作成したkeyが上書きされるからです。同名ではないkey名を指定したはずですが、おそらくkey名を変えても上書きされる仕様なのかと思われます。ssh配下に2つの公開鍵があります。別名ですが、ここでは最後に作成した「id_rsa.pub」が有効なSSHアクセスキーになります。pushをしても公開鍵を使う権限が無いですよ〜とメッセージが返ってきます。(publickey)ということになります。新たに「ssh-keygen」を実行し、作成した公開鍵をBitbucketに登録。以下のリンクを参考に行いました。行ったけど無駄だったこと※大変勉強にはなりました。それぞれの下記に貼ってあるリンクを参考に行いました。1公開鍵の存在確認とBitbucket側の設定確認2インスタンス内のSSH設定を確認とvimで修正https://qiita.com/katsukii/items/c3df0653ac07d41fe03f3公開鍵をauthorized_keysに設置https://qiita.com/youcune/items/2f427979403771f2e03a4接続先のサーバで所有者とパーミッションが適切に設定されていることを確認https://qiita.com/youcune/items/2f427979403771f2e03a5known_hostsからエントリを消すhttps://kiririmode.hatenablog.jp/entry/20171020/15084856746Linuxの権限確認と変更(chmod)https://qiita.com/shisama/items/5f4c4fa768642aad9e06などなど行っていました。長いのでそれぞれの説明は割愛します。気になった方はリンク先をぜひ覗いてみてください。(自分から見て)高尚なことを行っていましたが、結局は超初歩的な公開鍵の更新忘れというものでした。何事も基本が肝要ということでしょうか。それにしてもまさか複数回別名で取得した鍵が更新されるとは驚きです。今回のエラーを通して様々な対処を行うことができました。おかげさまで少しだけエンジニア力高まった気がします。協力してくださったメンターさんには感謝の極みです。親切なメンターさんに「ちょっと休憩しますか」っていつ言おうか考えていたクズっぷりです。・・・汗まとめ公開鍵の取得を複数回行ったら最後に作った鍵を使ってGitHubなり、Bitbucketに登録する。(publickey)と出た際の原因と対策Tweet広告を非表示にするもっと読むコメントを書く2020-01-21スクール課題アプリ完成後の振り返りこんにちは、カイノです。スクールが始まって6日経ちました。毎日コードを書いて、本日スクールの最終課題アプリ開発が終わりました!メンターさん曰く「いままでに無いくらい早い」と言っていただけました。事前学習をはりきって進めていたからではあります。個人的にはとても難しかったですが、なんとか終わりました。・テスト解析後のエラー対応などです。しているように見えるかもしれませんが、わからないことが沢山ありとても苦労しました。その度に調べて、試して、それでもわからなければメンターさんに聞くを繰り返してました。困った時に助けてくれる存在がいるって本当に助かります。助かってはいますが、わからないことがあってもすぐ聞くってことはしなかったですね。自走力も鍛えなきゃいけないので、まずは自分で調べてからです。「なんだ簡単だな〜」ってあとからは思います。難しいことが簡単なことに変わりました。難しいこと→簡単なことに持っていくまでに時間をかけ過ぎてはいけないなと思いました。技術的な点で特に苦労したのでは以下の2点です。・devise.rbを不必要にいじったことによるエラー対応1つ目は「部分テンプレート実装後のビューとコントローラー調整」です。以下のサイト見てもらうと詳しく載ってますが、https://qiita.com/okamoto_ryo/items/026b43e965a1180113ba)共通化しているHTML構造の部分を一括にまとめたものを部分テンプレートといいます。メリットは・繰り返し再利用できる・繰り返し書くコードを一回で済ます・修正するときに修正箇所が少なく済むですので、手間が減って便利ですが、表示するビューで求められるインスタンス変数などが定義されてない状態になりがちです。methodエラーを吐き出しまくりました。それぞれのコントローラー・アクション、ビューに条件定義などの設定を根気良くしていってなんとか実装できました。メンターさんにアドバイスもらった内容で部分テンプレートはアプリ開発のワイヤーフレームを作る段階で決めてしまえばスムーズに作れるそうです。次はそこを意識していきます。2つ目の苦労した点が「devise.rbを不必要にいじったことによるエラー対応」です。いじったことによるエラーの対応数自体は1つじゃなく何個もあるのですが、一番きつかったものをご紹介します。初心者にありがちかと思いますが、変えちゃいけないところを変えちゃったんです。何が良いか何が良くないか分別がつかない少年のように、あれこれいじっちゃいました。そのおかげで勉強にはなりました。(笑)devise.rbとはログイン機能を司るdeviseというGemの設定事項が書かれているファイルです。言いますとここを下手にいじるとログイン機能などにおいてエラーになります。[:name]私はこのデフォルトでコメントアウトされている機能をなぜかハッシュタグを外して適用させていました。そのためにdeviseでnameを求める機能ではことごとくエラーになりました。何が原因かわからず、デフォルトを確認するとコメントアウトしといてよかったんだと気付きました。詰まったら絶対リソースやデフォルトを確認しようと思いました。他にもなんやかんやありまして、あとはrspecというテスト解析Gemを使って、エラー箇所をつぶしていき、なんと完成しました。テスト解析後、70個エラー出たので白目になってました。今回の課題を通してアプリ開発の基礎を学習することができ、なんとなく要領を掴むことができました。わからないことが多いので引き続き勉強していきます。[Rails]こんにちは、カイノです。投稿失敗時に出すエラーメッセージが出るように設定したにも関わらず出せなかったので、これは困ったとなっていました。原因はrenderでした。コントローラー上に書いたrenderによって画面遷移が他のアクションを介さずに行われるため、インスタンス変数の指定をしてあげる必要があります。そもそもrenderメソッドとはレスポンスの出力をしてくれるメソッドです。renderメソッドを使うことで、ユーザーへのレスポンスとして送信すべき内容を指定することができます。コントローラー、ビューで使う事ができます。Qiitaざっくりと説明しますと、指定したHTMLファイルに直接飛んでくれます。処理が軽くなり、実用向けです。こちらがbooksというコントローラーのcreateアクションの記述です。@がついていないローカル変数を使っていることに注目してください。これにより、renderメソッドによる遷移先にもし@のついたインスタンス変数があった場合はビューファイルへの受け渡しができませんindexファイルを見てみると、2箇所に@のついたインスタンス変数がありますので、先程のrender前に@の定義が必要になります。アクションの修正後がこちら@がついたことにより、ビューファイルへ受け渡し可能になります。エラーメッセージを表示させるeach文にも、下記のように@のついたインスタンス変数があります。※コントローラーの前に/(スラッシュはいりません。[Rails]Tweet広告を非表示にするもっと読むコメントを書く2020-01-12コピペする時は全角スペースを生みかねないこんにちは、カイノです。今回、全角スペースが原因でエラーになったので自戒オンリーでアウトプットします。こちらが問題のマイグレーションファイルですが、6行目データ名の「text」の後ろにスペースが大きく空いています。空いている事自体に大きな問題はありませんが、ここが全角スペースになっています。見た目じゃほとんどわかりません。教材のモデル作成コードをコピペしたのですが、そのコードの後ろになぜか全角スペースが配置されていて(教材からの刺客??)この全角スペースが原因でエラーになっていました。後ろのスペースごとコピペしてしまった私はまんまと罠にハマってしまいました。#<ActiveRecord::ConnectionAdapters::SQLite3::TableDefinition:0x0000560b594a25a8>上記のように出ていました。ここでtextの後ろに余計に多いスペースがあることに気付きます。エラー文ちゃんと読んで、もっと早く気づくべきでした。全角スペースを消してもう一度実行すると問題なく動きました。17:39コピペする時は全角スペースを生みかねないTweet広告を非表示にするもっと読むコメントを書く2020-01-09エンジニアキャリア論のイベントに参加してきましたこんにちは、カイノです。エンジニアキャリア支援をされている渋谷にある企業の「20代エンジニアのキャリア論」というイベントに参加してきました。タイムスケジュールは以下のような流れでした。講義の内容はざっくりこんな内容です。・キャリアアップのためにやるべきこと講義の詳細を備忘録的サムシングとして以下に記載します。エンジニアは貴重な存在ということ・全労働人口の中でITエンジニア割合は1%。・転職求人倍率は10%前職中圧倒的TOP・IT人材不足。このままでは日本が終わるレベル。・プログラミング教育必修化でエンジニアは増えない。高まるのはITリテラシーのみで、英語の必修化によってみんなが英語を話せていないことが良い例。年収の目標はどこか・幸福度の臨界点は600万円らしい。・日本人の平均年収は430万円くらい。・まずは600万円を目指してほしい。同世代のキャリアパスイメージ・技術レベルが上位5%、10%のエリートになれなくても、上位20%に入らないとエンジニアとしてやりがいを持てない。・上位20%とは3年目時点では、SIerをしていて同僚のレベル感に愕然として個人で技術力を上げる手段を勉強会などで模索し、Web系言語の自主学習を始めるぐらい。