今日の学習
今日学んだこと 2021/01/13
学習項目
レスポンシブデザイン ruby応用
学習内容
レスポンシブデザイン
レスポンシブデザインとはざっくりいうとPC、タブレット、スマホで表示するデザインを変えること。
画面の大きさが違うから、それに合わせないと見づらいから変えようって話ですね。特にPCは横長に対して、スマホって縦長だし。
方法は簡単で、CSSに
@media(max-length: 表示を変えたい長さ) { その大きさを指定する .img { width: 50%; } }
こんな感じに記述します。この@media.....のことをメディアクエリといい、表示を変えたい長さをブレークポイントという。
ruby応用
case文
まず、条件処理で一般的なものだと、if文がある。今日習ったのは、case文、書き方は
color = "red" case color when blue puts "進める" when "yellow" puts "危ない" when "red" puts "止まれ" else puts "???" end
というように、それぞれの状況に応じた処理で記述できる。実践だと、もしかしたら、ゲストユーザーor無料会員ユーザーor有料会員ユーザーの時とかの処理で使えそうとうという印象でした。
繰り返し処理
繰り返し処理だと、今まででは、eachやtimesを習っていたが、今日は新しく、whileを学んだ。
while 条件式 # 条件が真である時に繰り返す処理 end
と書き、これの条件式を繰り返す処理と合わないものにすると無限ループが起こる。例えば
number = 0 while number == -1 puts number number += 1 end
これだと、数は永遠に-1になることはないため、常に処理が行われるというループに陥る。実践でのイメージはつかないが使えるようにしておく。
抜け出す方法としては、breakを記述しておくことで、処理を止めることができる。
number = 0 while number == -1 if number == 100 break end puts number number += 1 end
クラスの継承
クラスは継承することができ、継承することで元の性質を引き継ぐことができる
class 子クラス < 親クラス end
タスクの実装
Rakeタスクと呼ばれる、タスクを簡単に実行できるrubyツールがある。これは、railsにも組み込まれている。
タスクの生成
# Rakeタスク用のRakeファイルを作成
% rails g task タスクファイル名
これで、lib/tasks/ディレクトリにタスクファイル名.rakeというファイルが作成される。
また、environmentメソッドを記載することで、アプリケーション環境(今回はrails)に依存した処理を記載することができる。
namespace :ここにグループ名を記述する do desc "ここに処理の説明を記述する" task タスク名: :environment do ここに実際のタスクを記述する end end end
呼び出し方
# Rakeタスクの実行 % rails namespaceの名前:taskの名前
例外処理
期待しない結果が起こった時に、どのような処理をするのかを決めることができるのが例外処理になる。期待しない結果は主にエラーが起こった時のことを言うが、基本はエラーが起こった時はその時点で処理が止まる。
しかし、処理が止まることで困ることがある場合、例外処理を実装する。
基本的には
①例外が起こった後、その処理だけ別の処理をして、元の処理に戻る場合と
②例外が起こった後、その処理だけ別の処理をして、元の処理自体を全て無効にして中止する場合
の二つのパターンがある。
つまり
通常
11111111111(エラー)00000000000となるが
①
1111111111(エラー→別の処理)1111111111
②
1111111111(エラー→別の処理→最初の処理もリセット)
と言うようなイメージ
元の処理に戻る場合
begin # 想定される例外 rescue # 例外が発生した時にrescue以下の処理が呼ばれる end
のようにbeginで例外が起こると想定される処理を書き、rescueで例外が起こった後に行われる処理を書く。 また、raiseを使うことによって意図的にエラーを発生させることができる。
raise 発生させたい例外クラス, 'エラーメッセージ'
元の処理も全て無効にする場合
ActiveRecord::Base.transaction do # 処理1 # 処理2 # ... end
のようにトランザクションを利用する。