Ruby on Rails5をかじりだして
入門用とされるdotinstallをやってみたものの
もっともっと基礎の基礎の基礎と思われることが
何も理解できていないことがわかってしまった……
分かり次第追記していこうと思ってはいるものの
これを記した時点では何もわかってはいません。
なんでそんなこともわかっていないのに
RoRをやろうとしているのかと怒られるかもしれませんが
これさえわかれば、とも思うので、
http://railsdoc.com/
https://railsguides.jp/getting_started.html
https://docs.ruby-lang.org/ja/latest/doc/index.html
このへんを読みながら、書き足していこうと思います。
#以下わかっていないこと
@post のように書いたこれは何?
インスタンス変数のこと
特定の オブジェクトに所属しています。インスタンス変数はそのクラスまたはサブクラスのメソッドから参照できます。初期化されていないインスタンス変数を参照した時の値はnilです。
Controllerの中に書くアクションの中で定義した変数を指すときに使う
@があることで、その変数アクションに書いてあるで。という意味になるどっちかといえばこっちか?
post と書いた場合は?
ローカル変数のこと
あるいはその名前のメソッドの呼び出し・小文字または _で始まる識別子はローカル変数またはメソッド呼び出しです。
・ローカル変数スコープ(クラス、モジュール、メソッド定義の本体)における小文字で始まる識別子への最初の代入はそのスコープに属するローカル変数の宣言になります。
・宣言されていない識別子の参照は引数の無いメソッド呼び出しとみなされます。
$post のように書いたときは
グローバル変数のこと
プログラムのどこからでも呼び出しが可能
いろいろなところから参照したいようなものはこう書くということか
Post とか POST と書いたときは
定数として定められます。
・アルファベット大文字 ([A-Z])で始まる識別子は定数です。 定数の定義 (と初期化) は代入によって行われます。
・メソッドの中では定義できません。一度定義された定数に再び代入を行おうとすると警告メッセージが出ます。
・定義されていない定数にアクセスすると例外 NameError が発生します。
post.title のように書いたときの
↑ここと↑ここのそれぞれの呼び名
オブジェクト.変数 たぶん
もしくはオブジェクト.メソッド
post_comment_path(@post, comment)
のときのように書いた場合の
_ で結ぶ意味や理由
調査中
|f| これで挟んだときの呼び名と何を示しているか
呼び名未だ不明 (オブジェクト?)
挟まれた中身は変数である必要がある?
|f|やら|i|やら|num|やらが見つかる。
特に1文字でなければいけないとかいうことは無いようだdo |f|
処理 処理 処理
end
みたいにするときに、処理中に使われる変数を書くようだ。
||で挟んだらそれが宣言と同じ扱いになる…でいいのかな?
ちなみに
f.read
みたいな形で d |f| 以下に処理が書かれていることが多く
.read はメソッドと呼ぶ。
それぞれのメソッドは定形で、どんな働きがあるかはリファレンス見ると良さそう
配列.each do|f|
配列の0から順番に取り出して処理を実行する
多分最後までやったら完了的な感じ
<% %> これで挟んだときの呼び名
<%= %> これで挟んだときの呼び名
Ruby言語で書かれた命令文をこの中に書く
<% ~ %>と書いたら、処理だけ行う
<%= 〜 %>と書いたら、処理して、その結果の値を出す
<% %>で書くのはhtmlの中(View)に書く時の話。
<% end %> これをつけなければいけないタイミング
Ruby言語で書かれた文章を終了させるときに書く。けじめ
created_at: のような後ろに :をつけた物の名前
オプション と呼びます。
なんかいろいろ種類があるらしいので調査中
:id のような前に :を付けた物の名前
それぞれどういうときに使うのか
シンボル と呼ぶ(多分)
プログラム中のどこでも同一のオブジェクトを名前で表せるようにしたもの
:id ←これをサンプルではちらほら見かけたので、
各所で中身は違うけどidと呼ばれるものを使う。 みたいなときは
ひとまず :id で良いという感じなのだと思う。
オブジェクトに値を渡すときに()でくくってある時
doc = Nokogiri::HTML.parse(html, nil, charset)
みたいなやつ。doc の中には htmlを読み込んで得られた
html, nil , charset の3つについてデータが入ってるよ
ってことであってるのかしら
#以下ググったりなんだりで出てきた情報の備忘録
###”コントローラはクラスとして定義されましたが、アクションはクラスの中のメソッドとして定義します。”
###"render" とは そういうメソッドのこと
パーシャルと呼ばれる部分テンプレート(View)を
レンダリング(表示)してくれる機能のこと。
controllerとViewのどちらでも使える。
require 'なんとか'
と書くと、インストール済みのライブラリを読み込むことができる。
### Get と Post がどう違うか
いろいろなことはさておき、なるほどと思ったのは以下の説明
Get は対象URLにそのままアクセスすること
Post は対象URLに何らかのデータを持ち込んでアクセスすること
なので、とりあえずアクセスするなら全部Getだし
なんらかの入力欄があったら全部Post