もこたんぺ Learning Note

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

N+1問題について

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

Vue.jsの基礎テンプレート構文

テンプレートについて ●HTML <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> <div id="app"> <p>{{message}}</p> <button @click="reverseMessage">メッセージ反転</button> </div> ●JS new Vue({ el: '#app', data: { message: 'HelloWorld!' }, methods: { reverseMessage: function() { this.message = th…

Vueインスタンスプロパティ

el Vueインスタンスを結びつけるHTML要素を指定。 このプロパティで指定した要素の配下のみVue.jsが有効になる。 data Vue.jsで扱うデータを入れておく場所。 このデータをHTMLファイルから読み込み画面に表示することができる。 methods Vue内で扱えるメソ…

Ajaxを使ってRailsサーバと通信

AjaxはJavaScriptで表現したいことで、サーバ側からデータを新たに取得したり、データを裏側で更新したい時などに使用する。 Ajaxとは Webブラウザ上で非同期通信を行い、ページの再読み込みなしに、ページを更新するためのJavaScriptのプログラミング手法。…

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

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

モンキーパッチとは

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

404エラー、500エラーについて

404(Not Found)とは ルーティングエラーのこと。 ルーティングで行き先となるActionが見つからない状態。 サーバー側から「このURLは存在しない」というエラーの応答を意味している。 500(Internal Server Error)とは サーバー内でエラーが起こっている…

現場Rails Chapter6 RESTfulについて

RESTfulの概要について まずRESTってなに? REST(REpresentational State Transferの略)とはアプリケーションの設計方法の一つ。 操作の対象となるリソースをURLを使って表し、それに対して、HTTPメソッドの「GET」「POST「DELETE」「PUT」などを使って操…

現場Rails Chapter6 ルーティングについて

ルーティングとは アクセスを受けて適切なアクションへと案内する仕組みのこと。 「どのようなURLへどのようなHTTPメソッドでアクセスされたら、どのコントローラのどのアクションを呼び出したいのか。」をconfig/routes.rbに定義する。 ルーティングを構成…

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…

【RUNTEQ入学生必見!?】オンラインでの仲間の作り方

まえがき Q.RUNTEQに入ってこんなこと思ったことはないですか? 共有、共感ができる仲間が欲しい! 本当はみんなと仲良くしたいんだけど、どうしたらいいかわからない! 自分はコミュ障と決めつけて誰とも話さないけど、本当は仲良くしたい! 何でもないこと…

cssからscssにするメリットと注意点

●課題2 学習メモ ○cssからscssにする メリット 一度定義したスタイルのセットを簡単に呼び出すことができる セレクタやプロパティのネスト(入れ子)で記述量を減らせる 複雑なコードも再利用することができる ○applicatiion.scssでは require_tree でまとめ…

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

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

基礎知識編 Git

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

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

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