Ruby/WebApplication

非同期通信1

同期通信、非同期通信の違いは、 非同期通信においてはブラウザを再読み込みしなくても、ブラウザに表示される情報が自動で変わるという点である。 これを実現するには、JavaScriptを用いる。JavaScriptはブラウザ上でのポインターの動きによってメソッドの…

Ruby on Rails Model

Active Model モデルの機能を動かすオブジェクト Active Record データ保存に関するオブジェクトでデータを選別する。 Callbacks いつでも呼び出せるモジュール Validations データ保存の際に検証。 Serialization データとして返却するものを選別できる。 F…

Ruby on Rails の Controller

Action Controller これが、Ruby on Railsにおいてコントローラーの機能を動かすオブジェクトのことである。 レンダリング これは、コントローラーによってビューファイルをブラウザで表示させること。 JSON これはデータの保存形式の一つ。 Render template…

Ruby on Rails

Ruby on Rails の基本理念は、 DRY : Don't Repeat Yourself である。これは、コードを簡潔に書くことを意図しているものである。すなわち、繰り返して同じコードを書かないようにする意味のものである。 CoC:convention over configuration これは、設定よ…

正規表現

Sub/ match Subは、対象内の文字を入れ替えるメソッドであり、 変数.sub(/変換前/, "変換後")という形式で処理を行う。 Matchは、対象内に指定した文字列があるかどうかを判定するメソッドであり、 変数.match(/指定する文字列/)という形式で記述し、 <Matc…

Rubyでの例外処理

例外処理とは、 予期せぬ事態が発生したときに、自動的に対応をしてくれる処理のことである。 Ruby on Rails のRakeを用いて例外処理を記述する。 まずはタスクファイルを作成する。 タスクファイル内では、さまざまなタスクが記述される。 execute, raise, …

Ruby ブロック

ブロックは、メソッドの引数の一つで 通常の引数よりも理解が難しい。 メソッド名 do |ブロック引数| 処理 end 上記の記述によりメソッドの引数が定義されており、メソッドが呼び出される際に、引数として受け継いでいることになる。 この引数の処理を通常の…

データベースの同士の関係性

データベース同士の関連はモデルにおいてhas_many / belongs_to を用いて記述したり、 コントローラー無いの記述においては@message=@room.messages.new()のように別のデータのインスタンスから、インスタンスを生成したりする事ができ、 N+1問題の解決にお…

room[user_ids][]

room[user_ids]を理解する。 これはparamsとしてサーバーに送られるものであるが、ハッシュの入れ子構造になっているものである。 roomをキーとして、{"user_ids"=>["値"]}が値として返される。 この返される値もハッシュであり、キーはuser_idsである。 末…

中間テーブル

テーブル間の関係性を考える際、 仮に2つのテーブル間の関係性1対多の場合、 具体的には、一人のユーザーに対して、その人による複数の投稿 などの場合はhas_manyとbelongs_toを用いて関連づけができるが、 多対多の場合はこのような関連づけが難しい、正…

テストコード4

投稿検索フォームの表示を確かめるテストコード →placeholderに書かれていることがあるかどうかを検索する。 結合コード →ユーザーによる一連の操作の中で様々な状況を想定してテストを行う。 フォームに任意の文字列を入力 →fill in 'form', with: Faker::L…

テストコード3

FactoryBot →Gemのうちの一つで、テスト用にデータベースやインスタンスを生成してくれる。 Faker →Gemのうちの一つで、ランダムに、指定して文字列などを生成する。テストでユーザー情報を登録したい時に用いられる。 be_valid →valid?メソッドがtrueを返す…

テストコード続き

describeや、itを用いてテストコードをグループ分けしたが、contextも同じようにグループ分に使える。正常系と異常系を区別する時に用いる。 正常系のテストコードでは、 expect(@インスタンス).to be_valid のように記述することで、@インスタンスがデータ…

テストコード

テストコードを記述する際に、describeメソッドを使用する。 このメソッドでは、テストしたい機能を指定する。 また、itメソッドでは機能のテストについて詳細にどのような挙動を確かめるかを記述する。 expectメソッドでは、その引数とincludeの引数などが…

deviseライブラリ

deviseは、ライブラリの一つで、ユーザー管理機能を実装してくれる。 ユーザー用のテーブルを設計し、モデル、コントローラー、ビューファイるなどは自分で実装する。他テーブルとのアソシエーションを構成する。 このことで、ツイートが誰の投稿かわかるよ…

投稿一覧ページをローカルホストで表示するまでの流れの確認

まず、新しいアプリケーションを作成する。(rails new) そして、 モデル、データベース、ルーティング、コントローラー、ビューの順番にそれぞれコードを編集していく。 1、モデル ターミナルを用いてモデルを生成する。 データベースのテーブルを作成す…

Webアプリケーションの作成

ターミナルで、 rails _6.0.0_ new name -d mysql により新規アプリケーションを立ち上げる。 また、アプリケーションのあるディレクトリ内にて rails db:create により、データベースを作成。 データベースの扱い段階においても異なる運用環境がある。 1、…

コントローラー

Webアプリケーション開発に欠かせないのが、コントローラー。 リクエストに対して、処理を定めるのがこのコントローラーであるが、 そのコントローラー内で定義するアクションにも様々な種類がある。 -index 一覧ページを表示 -new 新しい投稿ページを表示 -…

大学1年生のプログラミング学習

2021年8月14日、 ついに本格始動するWebアプリケーション開発に向けたプログラミング学習、、、 HTML,CSS,Rubyの知識を少しつけた若者がIT業界で活躍するまでの軌跡が今から始まる!!