2020-01-01から1年間の記事一覧

【AWS】基礎用語の確認

はじめに 従来の物理サーバー(オンプレミス)ではなく、クラウドコンピューティングを導入する企業が増えてきており、その中でもAWSを導入している企業が多いのではないでょうか。 なので、AWSを勉強しようと思いましたが、基本的なネットワークの知識が欠…

【Rails】ActionController::RoutingError

エラーが発生した経緯 コントローラとアクションの作成とルーティングの設定をし bin/rails s してからビューを確認しようとすると、下記のエラーが発生しました ActionController::RoutingError (uninitialized constant ManagementController): Management…

【Heroku】seedデータの投入方法

seedデータとは データベースに投入する初期データのことです 開発環境と本番環境にそれぞれseedデータを作成してみます 1. 開発環境にseedファイル「members.rb」を作成します myapp $ touch db/seeds/development/members.rb 2. 作成された「members.rb」…

【Rails】migrationのメリットと注意点

マイグレーションとは 「移動」「移入」「移住」といった意味をもつ言葉です。 マイグレーションの機能 データベース内にテーブルを作成することができます。 SQLよりも簡単にテーブル作成ができる? SQLを使ってテーブルを作成する場合 1. テーブルを作成す…

【Herokuエラー】Detected sqlite3 gem which is not supported on Heroku:

はじめに Rails アプリを Heroku にデプロイしようとしたら remote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot remote: continue. remote: Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling. re…

【Railsエラー】Could not find gem 'rails-il8n (~> 5.1)' in any of the gem sources listed in your Gemfile or in gems cached in vendor/cache.

はじめに アプリケーションの文言を日本語化するために、「rails-i18n」というgemをインストールする際に下記のエラーが発生しました。 Could not find gem 'rails-il8n (~> 5.1)' in any of the gem sources listed in your Gemfile or in gems cached in v…

【SQL】サブクエリ(副問合せ)がNULLを含んでいた場合

はじめに NOT INまたは<>ALLで判定するサブクエリ(副問合せ)の結果にNULLが含まれると、全体の結果もNULLとなります。 データにNULLが含まれると、取得されるはずのデータが取得できなくなることがあるので、サブクエリの結果からNULLを除外する方法を調べ…

【Rails】renderとredirect_toはどう使い分けるの?

はじめに 動作が似ているrenderとredirect_to あまり意識せずに両者を使っていたので、それぞれの違いを調べてみました renderとredirect_toの動き方の違い redirect_toの方が多くの過程があり、具体的には以下のような過程の違いがあります。 ・render: co…

【Ruby】ローカル変数に代入がされていなくてもエラーにならない

はじめに Rubyはif文やunless文の場合、実際にローカル変数に代入がされていなくても、代入を行う記述が存在すればローカル変数を宣言したこととなる 以下のコードでは変数「num」が宣言されていないので、エラーが発生する if num % 2 == 0 message = "偶数…

【SQL】WHEREとHAVINGの違い

どちらも絞り込みを行うが、WHEREとHAVINGはなにが違うのか → 呼ばれるタイミングが違う SQLが実行される順序 FROM → WHERE → GROUPBY → HAVING → SELECT → ORDERBY 呼ばれるタイミングが違うとどう変わる? WHEREとGROUP BYを併用した場合 WHERE → GROUP BY…

メールアドレスの正規表現を考えてみた

メールアドレスの正規表現をネットで検索してみると、、、 短くシンプルなものから [^\s]+@[^\s]+ このような長いものまであった。 /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/ 自分でもメールアドレスのルールを以下のように…

テーブル設計をする際に気をつけたいこと

テーブル設計を試みた際に、テーブルの構造をどうすれば良いのか不明確だったため、調べつつ4つのルールにまとめてみた。 テーブル設計のルール ルール1 テーブルはある共通の属性を持ったモノの集合であること 表1はテーブルとはいえない。表2はテーブ…

【Rails】nil? empty? blank? present? 比較してみた

nil? empty? blank? present? 比較表 nil? empty? blank? present? nil true NoMethodError true false true false NoMethodError false true false false NoMethodError true false 0 false NoMethodError false true 123数字 false NoMethodError false tr…

【Ruby】mapメソッドと&とシンボルを使ってリファクタリングしてみた!

標準入力される整数 3, 100(この順で半角スペース区切り)の値を、int型にしてそれぞれの変数に代入する! やることはこれだけですが、リファクタリングする前と後でコードが見違えた。 リファクタリングする前 input_value = gets.split(' ') value1 = inp…

【Ruby】文字列を結合するメソッド(+, <<, concat)の違いとは?

Rubyで文字列を結合する主な方法が3つあったので、それぞれの違いを調べてみた。 1. +メソッドで文字列と文字列を連結する方法 str1 = 'Hello ' str2 = 'World!' p str1 + str2 # => Hello World! p str1 # => "Hello" p str2 # => "World!" ちなみに+メソッ…

【Ruby】andと&&ってなにか違いあるの?

andと&&って特に挙動に違いはなく、 「個人の好みによってどっち使ってくれても大丈夫ですよ〜」 って感じだと思ってた、、、けど違った! 例えば a = true && false p a # => false b = true and false p b # => true どちらもfalseになると思ってたけど、…

【Ruby】割り算するときは小数に注意

3を2で割ってみる。 普通だったら1.5となるはずだが、、、 p 3 / 2 # => 1 1.5にならない! なぜ1になっているのか? Rubyは、整数同士で割り算をした場合、計算結果は小数点以下が省かれて整数となる仕様となっている。 では、小数を含めた結果が欲しいと…

Gitのコミットメッセージ間違えた!修正するには?

gitにpushするまでのルーチン 1. 変更したファイルの確認 $ git status 2. 変更したファイルのソースコードを確認 git diff 3. コミットするファイルを選択 $ git add ファイル名 4. コミット (オプション-m でメッセージも一緒に) $ git commit -m "コミ…

MVCモデルってなに?便利なの?

MVCモデルってなに?便利なの? MVCモデルとは MVCとはModel・View・Controllerの略で、処理を3つの役割に分割してアプリケーションソフトウェアを実装する手法(デザインパターン)。 Controller ModelとViewの仲介役で、View(ユーザーの入力)から受け取…