Rails tutorial 3~
8/9 RailsTutorial 3章
8/10 RailsTutorial4章
8/10は14時間近く勉強していたにも関わらず1章しか進まず、少し気になることがあると調べ始めてしまい全く進まなくなってしまう。
gitコマンド
削除コマンド
git branch -d ブランチ名
マージ済みのブランチのみ削除可能
git branch -D ブランチ名
条件なし削除
rails console 特殊文字
特殊文字が使えずに悩んだが、調べた所macではoption+¥で\が入力できるようです。
悩んで時間を無駄にしました。
mapとeach
rails tutorial 4.3.2 でブロックの説明があったが、mapとeachの違いが分からなかったので調べました。
mapは繰り返し処理の結果を配列として出力する
繰り返し処理をして配列として使う時に使用
eachは出力される戻り値は元のまま
普通の繰り返し処理に使用
演習4.3.2.2
def yeller(str)
str.map(&:join)
end
=> :yeller
yeller(['o','l','d'])
Traceback (most recent call last):
3: from (irb):153
2: from (irb):151:inyeller' 1: from (irb):151:in
map'
NoMethodError (undefined method `join' for"o":String)
.
def yeller(str)
str.map(&:upcase)
end
=> :yeller
yeller(['o','l','d'])
=> ["O", "L", "D"]
演習問題の順番通りにjoinから実行した結果うまく動かず、この結果からmapは繰り返し処理であり配列から1つずつ要素を取り出していることを確認しました。
def yeller(str)
str.map { |s| s.upcase.join }
end
=> :yeller
yeller(['o', 'l', 'd'])
Traceback (most recent call last):
4: from (irb):171
3: from (irb):169:inyeller' 2: from (irb):169:in
map'
1: from (irb):169:inblock in yeller' NoMethodError (undefined method
join' for "O":String)
.
def yeller(s)
s.map(&:upcase).join
end
=> :yeller
yeller(['o','l','d'])
=> "OLD"
上の2つの結果から恐らくですが
s.map(&:upcase).join
の部分は
s.map(&:upcase)
が繰り返しで最後まで処理された後に
.join
の処理が実行されているということでしょうか。
rails tutorial
GitHubのリポジトリ private public
GitHubのリポジトリをpublicで作っていたので、privateに変えようと思ったが、設定がどこにあるのか分からなかったので調べた。
GitHubの画面右上のアイコンを押してsettingから一番下のDanger Zoneの一番上Change repository visibilityでChage visibilityを押すと変更できる。
データベースのリセット
2章のtoy_appで適当にいじり回していたらusersのidがどこまでも増えていってしまったので、リセットしたいなと思い調べました。
rails db:reset
でリセットできた。
rails db:migrate:reset
でもできる。
違いはよく分からない。
理解できていない所
Rails tutorial2章まで終わり、理解できずに飛ばした所はモデル同士の関連付けとヴァリデーションの設定。
詰まって20分調べても分からなかったら飛ばすというやり方で進めています。
初めてのGitとGithub
初めてのGitを始めました。
事前準備が終わって、いよいよコマンドを使っていくセクション3の最初から詰まりました。
デスクトップにフォルダを作ってその中にtxtファイルを作ったのですが、iCloud Drive の下にデスクトップが存在していて、アドレスがわかりませんでした。
色々調べた所、 Finderから移動したいフォルダをターミナルにDrag&Dropするとパスが入力されることがわかったのでそれで対応しました。
自分の環境では
cd /Users/ユーザー名/Desktop/移動したいフォルダ¥
これで移動できました。
最後に半角スペースが二つ入っています。
cd ..
でデスクトップに移動できているはずですが、ls
で何も表示されません。よくわかりません。
セクション3-13
Gitで管理するディレクトリを作成して
git init
git add
git commit
git remote add
origingit@github.com:name/repositoryname.git
と進んだ後
git push -u origin master
を入力したら
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
こんなエラーが出てしまいました。
エラーメッセージで検索していたらこちらの記事を見つけたので参考にさせていただきました。
fatal: Could not read from remote repository.のエラーたいしょ
こちらの記事の通りにsshの設定をした所無事に実行できました。
初めてのGit終了。
ウェブ開発入門完全攻略コース git
セクション16:Git終了
とりあえず最後まで終わりました。
途中MySQLやRailsの所で理解できていないことは多々ありましたが、とりあえず最後まで進めました。
基礎的なことはなんとなくわかるようになったのかなというレベルですね。
この後やっていこうと考えていること
この教材をやり始めた時は、一周終わったらRails Tutorialをやってみる予定でしたがUdemyの
Git:はじめてのGitとGitHub
この教材をやってからRails Tutorialをやっていこうかなと思っています。
最近出勤前に勉強をするために早起きをしようと思っているのですが、24時頃まで眠くならないので困っています。
22時に寝て朝6時頃には起きる生活をしてみたい。
ウェブ開発入門完全攻略コース セクション16
ついに最後のセクションのgit入門に到達しました。
途中わからないことだらけですが、適当に調べてわかったつもりになりながら進めています。
git addは必要なのか
調べたら出てきましたが、実務を経験してみないとわからなそうです。
ウェブ開発入門完全攻略コース Ruby入門
セクション13 Ruby入門
cloud9のエディタでmacの上下のカーソル移動が使えなくて不便に感じたので、設定を変更した方がいいと思いました。
control + p と control + n のkeybindingsを変更すればいいだけです。
演習:条件分岐
条件分岐の演習ですが、ifでやっても面白くないのでcaseでやろうと思ったのですが。
caseは一致するものを判断することしかできないのですね。
age = 11 case age when age >= 12 then puts "5,000円" when age >= 6 && age < 12 then puts "2,500円" when age <6 then puts "1,000円" end
これだと思い通りに動きませんでした。 範囲の指定は出来るようですが、関係演算子は使えないみたいです。
204.配列
配列の作成で出てきた z = (0..10).to_a のaは.classでみたらarrayでした。
209.繰り返し処理 while
無限ループからの脱出のコマンドですが、自分の環境ではcontrol + shift + cでした。
セクション15:Ruby on Rails5入門
徐々に理解するというより指示された通りに入力して行く作業になってきました。
最初のうちはこれで進んでいっていいのだろうかという感じです。
本日の進行
セクション12-セクション15の252まで
サラリーマン夜の勉強 JavaScript DOM操作
JavaScript DOM操作
演習:DOM操作で悩んだ所
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>演習:DOM</title> </head> <body> <ul id="lists"> </ul> <input type="text" id="newList"> <input type="button" value="追加" onclick="append()"> <script src="js/exercise.js"></script> </body> </html>
function append() { // inputから入力内容を取得 var newList = document.getElementById("newList").value; // li要素を作成 var li = document.createElement("li"); // liタグの要素に、テキストノード text を追加 li.appendChild(text); // idgalistsのulタグに、liを追加 lists.appendChild(li);
コンソールに出力して変数の中身をみても問題なさそうだったので、最初はこれでなぜできないのかと悩んでしまいました。
結構な時間調べましたがわからず解答をみたところ、問題点はnewListがテキストノードになっていないことが原因でした。
ノードをDOMツリーに追加するappendChildは考えれば当然ですが、ノード以外のものを追加しようとするとエラーになりますね。