もこたんぺ Learning Note

自分が勉強する上でわからなかったことを理解を深めていくためにまとめていく。

Rails

N+1問題について

N+1問題って? ループ処理の中で、都度SQLを発行して、大量のSQLが発行されてパフォーマンスが低下してしまう問題のこと。 初めの一回のSQLでModelを取得して、そのModelに対するデータ数分(N回)のSQLが実行されてしまう。 データ量(N)+1回文のSQLが実行…

アセットパイプラインについて

アセットパイプラインとは JavaScriptaやCSS、画像などのリソース(アセット)を効率的に扱うための仕組みのことをいう。 sprockets-rails gem にて提供されるSproketsの機能で、デフォルトで有効になっている。 アセットパイプラインって何をしてくれるの …

モンキーパッチとは

モンキーパッチとは オリジナルのソースコードを変更することなく、動的言語(JavaScriptやRailsなどのような)のコードを拡張したり、変更したりする方法のこと。 参考 ・Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発…

authenticateメソッドについて

authenticateメソッドとは Userクラスにhas_secure_passwordと記述したときに自動で追加された、認証のためのメソッド。 引数で受け取ったパスワードをハッシュ化してその結果がUserオブジェクト内部に保存されているdigestと一致するかを調べる。 一致して…

セッションとCookieについて

ログインしたときやカートにものを入れたとき 例として、もしWebサイトにログインや何か商品をカートに入れる場面があったとします。 ログインしたはずなのにログインできていないことになっていたり、商品を買い物かごに入れたはずなのに、次の画面に進むと…

form_withの中にあるlocal: trueって何?

local: trueとは 公式ドキュメントによると「リモート送信の無効(デフォルトはfalse)」とのこと。 local: trueを記述しない場合は、非同期通信(Ajaxによる通信)が行われることになる。 local: trueを入力することで、非同期通信をせず、HTMLとしてフォー…

i18nを使って日本語対応

i18nとは ソフトウェアを特定の地域の言語、仕様に縛られることなく、世界各国で共通して利用できるようにすることを意味する。「Internationalization」を省略した表記方法のこと。 Railsのエラーメッセージやコンテンツは英語表記になっているので、英語以…

i18nを使って日本語対応

i18nとは ソフトウェアを特定の地域の言語、仕様に縛られることなく、世界各国で共通して利用できるようにすることを意味する。「Internationalization」を省略した表記方法のこと。 Railsのエラーメッセージやコンテンツは英語表記になっているので、英語以…

現場Rails Chapter3 Bootstrapについて

Bootstrapとは フロントエンドのフレームワーク 自分で一から画面のタイトル、メニューバー、ボタン、リンクとなどといったものを大変だけど、手軽に見栄えの良い画面を作成することができる。 rails newを実行した直後は、Railsアプリケーション全体で一つ…

「bundle exec 〜」ってナゼいるの?

そもそもBundlerってナニ? プロジェクト内で使うGemのパッケージを管理するツールのことで、簡単にいうならばrbenvと似ている感じ。 rbenvとは Rubyのバージョン管理を切り替えるツールのこと。 使っている環境全体のバージョンだけではなく、ディレクトリ…

現場Rails Chapter2 MVCについて

YAMLについて YAMLはあくまで「仕様」 インデントを使ってデータの階層構造を表すためのもの あらかじめ設定しておく時によく使用する(日本語訳など) ルーティングとは リクエストに対応するレスポンスを返すためにどの処理を実行するのかを定義したもの M…

rails generateコマンドで必要のないファイルを生成しないやり方

●課題1 学習メモ rails generateコマンドを実行する際に assets、helper、testファイルを生成したくないときに config/application.rb に以下を入力してから rails generateコマンドを実行すると指定したファイルが生成されなくなる。 config/application co…

基礎知識編 Git

●Gitとは ・共同開発する際に使用するツール ・バージョン管理をするもの 特性:「強力」で「高速」 ●単語と意味 ・VSC(バージョン管理システム) →プロジェクトで発生した変更点を自動的にトラッキングする(=追いかける) 仕組みを提供するもの。 VCSを使…

基礎知識編 コマンドライン(CLI)

☆はじめに Railsチュートリアルを始める前に 前提知識シリーズのコマンドラインを読んでみて わからなかった単語や意味、操作方法などを 学習記録として残していく。 ●単語と意味 ・Unix →現存する最も古いOS 特徴:安全性が高い、余計な機能が少ないから軽…