【アウトプット】エラー文の見方(08/06)
◆SyntaxError◆
Syntaxとは構文のこと
つまり、文法が間違って居る
例えば、カッコが足りない、endが足りないとか、通常の形をしていない場合
◆NoMethodError◆
メソッドがないよ(定義されてないよ)というエラー
エラーメッセージの中にレシーバーが記述されて居ることが多いため、ここをヒントにすると良い。
それが役に立たないこともあり、それが「nil」について
演算結果がnilとなってしまった際、そのメソッドと紐づいて居ると「虚数.メソッド」となるため
◆NameError◆
定義されていないローカル変数またはメソッドがある時に。
基本はスペルミスで間違った名前を登録して居る時などに発生
【アウトプット】「例外について」(08/04)
◆例外◆
コードを読み込んだとき、想定と違う結果が出たときのことをいい、例外が発生すると処理が停止する。
例外時にどういうメッセージが出たり、処理を行うかを設定することもできる。
Rubyでコードを間違っていた時に「SyntaxError」などの表示が出るのもこれにまつわるもの。
◆begin文◆
例外発生部分をbegin〜endで囲むことにより、例外となる部分の処理を実行するように指示するもの。
例外を捉えつつ処理を続行するには、rescueを使う。
◆rescue◆
このメソッド(?)を使うことで、例外でエラーが起きた時に出す処理を規定する。
これを使うことで例外が起きてもそのあとの処理が続行できる
beginとセット。
ちなみに、rescueの後にスペースを開けて、クラスの指定もできる
<使い方>
begin(ここからendまでで、エラーの出るところを囲む)
rescue
例外時に出すメッセージ
end
◆raise◆
これを置くと例外を発生させてくれる。
不具合の原因箇所を明示して処理を止める時に
raise 発生させたい例外クラス, 'エラーメッセージ'という風に記入する
指定しなければ、「RunTimeError」となる
【アウトプット】検索フォームの作り方(08/03)
◆必要なもの◆
●中身(検索機能)
・whereメソッド
条件を設定して、設定した条件に合うものを引っ張ってくるメソッド
<使い方>
モデル名.where('条件式')
・LIKE句
曖昧な文字列を検索する時に使用する
曖昧文字列とは
%:任意の文字列(複数文字)を検索
_:任意の一文字を検索
この二つのことであり、組み合わせかたで
文字列の最初に指定した文字列を含む(where('title LIKE(?)', "a%"))
文字列の最後に指定した文字列を含む(where('title LIKE(?)', "%a")
文字列の中に指定した文字列を含む(where('title LIKE(?)', "%a%"))
の3パターンを指定できる
検索フォームに使うなら、3つ目を充てる
●外側(検索フォーム)
・form_with
<使い方>
.form_with
ビューに規定する、ヘルパーメソッド。
テキストを入力するフォームを作る時に使用する。
使う機能は
・一行のテキストを入力する機能(text_field)
・検索ボタン(submit)
<使い方>
<%= form_with(url: search_tweets_path, local: true, method: :get, class: "search-form") do |form| %>
<%= form.text_field :keyword, placeholder: "投稿を検索する", class: "search-input" %>
<%= form.submit "検索", class: "search-btn" %>
<% end %>
アウトプット【MVCモデル】(07/31)
◆MVCモデル◆
M = モデル
V = ビュー
C = コントローラー
の総称で、ウェブアプリケーションを作成するのに必要な要素を指している。
この単語自体はあまり覚える必要はないと考えているけれど(どうせ色々やってたら自然と覚えるだろうし)
◆モデル◆
データベース、そこからテーブルに接続してデータを取り出す役割を持つ
コントローラーでモデル(機械)を操作して、対象のデータを取ってくる、というイメージで捉えてる
モデル名は大文字の単数形で表されて、テーブルが小文字の複数形などでやや覚えにくいため、
「服の1セットは沢山の要素でできてるけど、それを着るモデルは一人」というイメージで捉えている
◆ビュー◆
ウェブアプリケーションで、実際にブラウザに映る見た目の部分のこと
コントローラーと繋がっている
◆コントローラー◆
個人的に、MVCの中で最も大事だと思っている部分
ルーティングで受けた命令でどのコントローラーを使うかが決まり、そこからモデルやデータ、ビューと繋がってデータの受け渡しなどを行う
コントローラー名の命名規則は複数形(小文字)
ゲーム機には沢山コントローラーを繋げるというイメージ
アウトプット【if文・case文・while文】(07/30)
◆if文◆
条件式と呼ばれるものの代表例。
条件を設定して、その条件をクリアした時に値を出す。
条件を満たさなかった時にも、また別の値を設定できる。
条件を満たしている時を真(true)、満たしていない時を偽(false)という
elseifを用いることで、条件式を二つかけることができるので、
1〜10を探す時に
条件式1: i(変数) =>10
条件式2: i =<1
で条件分けをして、1〜10を探す。
<使い方>
if 条件式
trueだった時の処理結果
elseif 条件式2(falseだった時、もう一度条件式を充てる)
elseifがtrueだった時の処理結果
else
falseだった時の処理結果
end
<捉え方>
英語のIf構文と同じ捉え方。
「○○(条件式)だったら、△△(trueの時の値)なのになあ」
elseは、英語のor(さもないと〜)のイメージ。
「もし○○(条件式)しないなら、▼▼(elseの時の値)になるぞ」
◆case文◆
if文の亜種で、同時に複数の条件を設定できる
whenという要素を使うことで、この場合わけを行う
elseifを使うよりも簡単に多くの条件を設定できるのが利点
<使い方>
case 条件式
when 値1 値1の時の処理
when 値2 値2の時の処理
when 値3 値3の時の処理
else どれにも一致しない時
end」
<捉え方>
whenは英語で「〜するとき」という使い方をするので、それと同じイメージで捉える
◆while文◆
繰り返し処理とif文を足したようなもので、処理結果が真の時に処理を繰り返すという文
無限ループに陥りやすいため、条件式には注意が必要
この無限ループ防止のためにbreakという要素を使うことがある
breakは、これを読み込んだ瞬間、そこの演算が中止になるという意味の要素
<使い方>
number = 0
While number <= 10
Puts number
Number += 1
end
<捉え方>
「〜する限り」という意味をwhileが持っているのでそこから
【アウトプット】before_action、そしてonly、exceptオプションについて(07/29)
◆before_action◆
コントローラーで定義されたアクションが実行される前に、共通処理を行うためのコマンド。
この後にメソッド名を追加することで、そのメソッドが行われる前に処理しろ、という命令を出すことができる
<使い方>
before_action : my_input(メソッド名)
<捉え方>
事前に設定したことを命令一つで呼び出す、という面ではメソッドに近いところが…ある?
もう少し面白そうな捉え方があればお教えいただけますと幸いです。
◆only, exceptオプション◆
before_actionとセットで使うオプションで、どのアクションを行うかを指定することが出来るもの。
onlyは行いたいアクションを追記する(追記されたアクションだけをやる)
exceptは行いたくないアクションを追記する(追記されたアクション以外をやる)
<使い方>
before_action :my_input, only: [:edit, :show]
before_action :my_input,except:[:index, :show]
(メソッド名) (対象にするアクション)
<捉え方>
min max
0--------------------------100
only > < except
自分なりの捉え方なのでこれをみている方に伝わるかどうかは分かりませんが、
・onlyメソッドは0から始まり、足していくと最大で100になる
・exceptメソッドは100から始まり、引いていくと最低で0になる
【アウトプット】「スネークケースとキャメルケース」(07/29)
◆スネークケース、キャメルケース◆
単語の分け方の区分
スネークケースは「_ 」を使って単語の区切りを表現する(例:my_input)
キャメルケースは、単語の頭を大文字にして区切りを表現する(例:myInput)
キャメルケースは、一単語目から大文字にするアッパーキャメルケースが存在する(例:MyInput)
<使い所>
・スネークケース
変数、メソッド名
・(アッパー)キャメルケース
クラス名
<捉え方のイメージ>
・スネークケース
スネーク(蛇)は地を這うことから、下に存在している・・・だからアンダーバー( _ )で表現する
・キャメルケース
キャメル(ラクダ)は背中にいくつかのコブがあり、目立つ部分である
アルファベットの大文字は、当然小文字より大きいので、頂点が高い位置にある
つまり、ラクダのコブの凹凸を、小文字と大文字に例えている
アッパーキャメルケースは、ラクダの頭が上がっている(上=UP≒アッパー)というイメージ