開発日記11:Ruby on Rails(仕組みなど)

〇demyでRubyやRuby on Railsを学習してたけど、
途中で分からないところがあり詰まってしまった。
Rubyは、pryというインタラクティブに実行が出来る(1+1と入れただけでコンパイルせずに2と返してくれたり)gemをインストールしたあとに動作確認するも、日本語の入力が不可になり詰まってしまった。調べても良く分からなかったので講師に質問中。
Ruby on Railsは、ヘルパーメソッドのところで考え方が良く分からず詰まってしまった。
こんなコードがあるけど、この「Board.new」が何を指しているのかが、どうもわからず。
恐らく知っている人からしたら超基本的なことなんだろうけど、
これは〇rogate進めて行けば解決しそうだなと思い、一旦ストップ。
class BoardsController < ApplicationController
def index
end

def new
@board = Board.new
end
end

そんなこんなで今日は一日某店にこもって勉強してました。
今日やったところで大事だなと思ったところと、
本日のKPTをアウトプット。

★ 今日やったところ
1. Ruby on Railsの仕組みの復習(〇rogateのRuby on Rails5 Ⅰ)
⇒やりすぎ禁物ってよく聞くのでこれ以上は見ない。見ない。
大事なところは2回見てるのでさすがに頭に入ったと思う。
具体的には、まずリクエストがあるとルーティング⇒コントローラ⇒ビューで処理がされる流れがあって、
ルーティングではリクエストのURLに従い、どのコントローラのどのアクションで処理しますよっていうのが書かれてて、それに従い実際にアクションされるわけだが、じゃあそのアクションはなにと紐づいているかというと、ここが若干覚えづらいところだけど、
コントローラファイル=ビューのフォルダ
コントローラのアクション=ビュー
で対応してる。
これが基本となってて、ここさえ覚えておけば、あとは以上をもとに考えれば分かるところだったり、細かいところを覚えたり、そんな感じでいけるのかなといった感触。
例)
URLの変更:ルーティングのファイルで受けるリクエストの指定をかえてあげるだけ
ページ追加:ルーティングのファイルにURL、コントローラ、アクションの対応付けを1個追加してやって、コントローラやビューもそれと対応するように書くだけ。
レイアウト:rails generate controller コントローラ名 アクション名でrailsのアプリを作ったあとに出来るapp/assets/stylesheets配下のCSSファイルを編集してやればすべてのビューに編集した内容が適用
リンクの作り方:ルーティングのファイルで受けるリクエストとして指定したものと同じようにビューで指定してやる。ビューでの指定方法はHTMLの基礎知識だけでカバーできる(具体的にはa hrefの値に指定してあげるだけ)

2. Dockerの使い方
2-1.起動
docker-compose up -d
※ docker-compose.ymlのあるディレクトリ上で実行
2-2.停止
docker-compose stop
※ 停止状態にあるだけでコンテナは存在したまま
2-3.削除
docker-compose down
※ コンテナが削除
⇒開発を進める中で、基本的には「起動」と「停止」の2つを使用すれば問題ない。

3. Ruby on Railsのコントローラやモデルについて
基本的にコントローラを定義する際はApplicationControllerを継承する。
これによって定義したクラスがコントローラとして機能する。
ApplicationRecord⇒モデルとして機能させるために継承したりする
ApplicationRecordはさらにActiveRecordクラスを継承していて、こいつがO/Rマッパーの機能を持ってる。

4. ブラウザからサーバに送信するHTTPメソッドと役割
GET ⇒リソースの取得
POST ⇒リソースの作成
PATCH/PUT ⇒リソースの更新
DELETE ⇒リソースの削除
やりたいことによってメソッドを使い分ける
だが、なぜ使い分けるのかがいまいち腑に落ちず。
ここはもっと調べる必要あり。

5. エラー対処
今日、ビューファイルを作成してローカルの環境で動作確認したら、こんなエラーメッセージが出た場面にでぐわした。
We’re sorry, but something went wrong.
If you are the application owner check the logs for more information.

ログファイルを見てみたら、こんな風に書いてた。
ActionView::Template::Error (Your template was not saved as valid UTF-8. Please either specify UTF-8 as the encoding for your template in your text editor, or mark the template with its encoding by inserting the following as the first line of the template:

上記の通り、確かに文字コードがSJISだったので、UTF-8じゃないとダメなのかと思い、UTF-8に変換してあげたら、問題なく動いた。ちゃんちゃん。

6. その他
Rails概要、Ruby概要、MVCアーキテクチャ、Twitterのユーザ名変更、bootstrap導入手順、エンジニアの契約の話とかとか。

★ KPT
K:
・1日店にこもる忍耐力
・大枠をおさえる(今回でいうとルーティング、コントローラ、ビューの流れと仕組み)

P:
・ハマりすぎ
⇒見切りが必要。2時間同じ問題で悩んだ。シンプルに時間がもったいない。
・集中が途切れる
⇒原因不明、たまに休憩入れたほうがいいかも。

T:
1日に3回くらい気分転換になる動画見る、別のことする
⇒したら全体的に生産性あがるかも?わからんけど

以上です

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA