大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

【Ruby】配列オブジェクト

爆速学習の番外編です。

Rubyの配列オブジェクトについて理解を深めます。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

内容

配列オブジェクトとは?

1つの変数で複数のデータをもつことができるオブジェクトのこと。

 

データの保存方法

順番でオブジェクトを保存します。

文字列、数値、ハッシュなどをオブジェクトとして順番に管理できます。

 

データは要素と呼ばれ、要素には自動的に順番が割り振られます。

 

配列オブジェクト変数の作り方

array = []

 左辺のarrayは変数名で、自由に名前の定義ができます。

この時点では空の配列オブジェクトなので、putsメソッドでデータを表示しようとしても何も表示されません。

 

配列オブジェクトに要素を追加する

array << 追加する要素

 <<メソッドで要素を追加すると、配列の一番最後に要素が追加されます。

 

今後に向けて

配列オブジェクトの復習を挟んでみました。

 

「1つの変数に複数のデータを保存できるオブジェクトのこと」

「保存方法は、データ(要素)に順番を割り振って保存する」

「データを呼び出す際には、配列オブジェクト、もしくは配列オブジェクトと順番を指定する」

 

こんな感じでしょうか。

【Ruby】ハッシュオブジェクト

爆速学習の番外編です。

Rubyのハッシュオブジェクトについて理解を深めます。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

内容

ハッシュオブジェクトとは?

1つの変数で複数のデータをもつことができるオブジェクトのこと。

 

データの保存方法

データとそれに対応するキーをセットにして保存されます。

 

ハッシュオブジェクト変数の作り方

hash = {}

 左辺のhashは変数名で、自由に名前の定義ができます。

この時点では、空のハッシュオブジェクトですので、putsメソッドでデータを表示しようとすると「{}」だけ表示される。

※ハッシュのキーは文字列よりもシンボルの方が実行速度が早いので、シンボルを使おう(詳しくはこちら)

※キーに対するデータは上書きすることができる=キーはいつでもハッシュオブジェクトに生成することができるので、そのキーに新規でデータを設定することもできる

 

今後に向けて

ハッシュオブジェクトの復習を挟んでみました。

 

「1つの変数に複数のデータを保存できるオブジェクトのこと」

「保存方法は、データに対してキーをセットにして保存する」

「データを呼び出す際には、キーを指定する」

 

こんな感じでしょうか。

 

次はRuby on Railsかセキュリティについて書く予定です。

Ruby

爆速学習のRuby編です。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

Rubyとは?

オープンソースオブジェクト指向スクリプト言語です。

日本人のまつもとゆきひろさんが1995年に開発しました。

Javaと同じくらい歴史があります。

 

楽しくコードが書けること(「Enjoy for Programing!」)で有名です。

 

そして、なにより開発者が日本人であるので、日本語のコミュニティやライブラリなどの情報がたくさんあります。

 

名前の由来

当時のまつもと氏の会社の同僚が7月生まれで、7月の誕生石がルビーだったからのようです。

 

特徴

・直感的に実装したい機能をコーティングでき、生産性が高い言語

・シンプルな表記や文法ルール

・プログラミングを書いてすぐに実行できる

・必ず戻り値を返してくれる

・日本で開発されたプログライング言語で初めて国際企画として認められた

・日本の工場規格(JIS)に認定されている

Macには最初からRubyがインストールされている

Ruby on Railsが使える

・近年でWeb系の企業で良く使われてきている

 

人気の理由

特徴の部分と被りますが、

・直感的に実装したい機能をコーティングできるので、ストレスフリーで開発できる

Ruby on Railsが使える

・日本で開発されたプログラミング言語で、日本語の情報が多い

ことが挙げられます。

 

デバッグ方法

・putsを使用して、引数の文字列(to_sメソッドが必要)を画面に出力する

・pもしくはppを使用して、引数のオブジェクトを画面に出力する

・loggerを使用して、Rubyプログラム実行時に、変数値をログファイルに残す

 Rubyのファイル冒頭に「require」で宣言する必要があります

 ※詳しくはこちら

・例外処理を組み込んで、エラー該当部を確認する

 

例外処理の仕組みがない言語では、処理が完全に終わったかどうかを1つ1つ確認しながらプログラムを書く必要があります。

 

その他

世界でのシェア率は6番目です。また、日本での求人数は7番目で、平均収入ランキングでは4番目に位置するようです。

(参考サイト:

今学ぶべきプログラミング言語ランキング【2019年最新版】 | CodeCampus)

 

Ruby on Rails

Rubyが使えるWebアプリケーションフレームワーク

2004年に誕生しました。

 

動的なサイト(ユーザ毎に仕様が変わるサイトなど)を作るに適しており、さらに効率良くWebシステムやWebベースの業務システムを開発できます。

 

近年はRuby on Railsを使う企業が増えてきているようです。

 

Ruby on Railsの事例

クックパッド

Airbnb

・Hulu

GitHub

Twitter(現在はScala)

 

他の言語との比較

PHP

1995年に誕生。

ダイナミックなWebページ開発を目的に開発された。

Pythonの次に簡単に学べる言語かも。

 

・メリット

使い方の説明や解説などのナレッジが蓄積されている

データベースサポートが幅広い

この3つの言語の中で求人量が多い

 

・デメリット

PHPだけで構成されたプログラムはハッキングに弱い傾向にある

元々はスクリプト言語であり、オブジェクト指向ではない

 

・事例

Wikipedia

Facebook

PixelCrayons

 

Python

1992年に誕生。

高い生産性と読みやすいコードを目的に開発された。

 

・メリット

高い生産性と読みやすいコード(学習しやすい)

2番目に求人量が多い

オブジェクト指向

Djangoが使える

データ構造がしっかりしている

 

・デメリット

文法ガイドラインが難しい

classとmethodがない

 

・事例

Google

YouTube

 

まとめ

要件やチームメンバーによってどの言語が使われるかは変わりそうですね。

あと、フレームワークの性能の良さ。

 

個人的には、WEBサービス開発企業の求人を見ていると、PHPRubyPythonの順で求人が多い気がします(完全に勘です)。

 

転職のために初めてプログラミングを勉強するけど、明確な目的がないのであれば、求人が多いPHPから学んだ方が良いかもしれません。

 

ただどのプログラミング言語を選んでもしっかりと学ぶことができれば、他のプログラミング言語でも応用が効くと聞きますので、学び始めたら徹底して理解することが大切かもしれません。

 

プログラミングの流れ

・ファイルにプログラムを書いて保存する

・PCに対して、書いたプログラミングを実行するように命令する(Macではターミナルで命令したりする)

Rubyプログラムは拡張子をrbにする決まりがある

※コードは原則上から読まれていく

 

用語

スクリプト言語

コンパイルが一切不要で、そのままプログラムを実行することができる言語。

 

コンパイル

機械がプログラムを実行するために、人間が書いたソースコードを機械命令に変換すること。

 

オブジェクト指向

全てのデータがオブジェクトとして表現されている。

継承・カプセル化ポリモーフィズム(多態性)などの機能が使えるので、コードの量が少なくて済みます。

 

カプセル化

勝手に外部からデータにアクセスできないようにすること。

想定外のアクセスで、本来書き換えてはならないデータを誤って書き換えることがなくなります。

 

継承:

既にある機能を引き継ぎ、効率よくソフトウェア開発を行う機能。

Rubyではクラスの継承のことですね。継承することで、メソッドが別のクラスで利用できるようになります。

クラスの継承には、親クラスと子クラスの関係があり、元となるクラスを親クラス(スーパークラス)、親クラスのメソッドを引き継ぎ新しく作成するクラスを子クラスと呼ぶ。

 

ポリモーフィズム多態性):

同じ名前のプログラムを複数定義でき、それぞれのデータに合わせて使うことができること。

 

プログラミング:

人間の意図した処理を行うようにコンピュータへ指示を与えること。

コンピュータは指示された通りにしか動きません。なので、コンピュータが理解できる言葉である「プログラム」を作る必要があります。これがプログラミングです。

 

プログラム:

コンピュータがするべき仕事の手順や内容をコンピュータが理解できる言語で書いている文章。

 

コマンドラインインターフェース:

コンピュータに対してキーボードからコマンドという文字を打ち込んで操作を行う方法。

Macでデフォルトで入っているのがターミナル。

linuxコマンドを入力することで、プログラムを実行する命令をPCに与える。

 

log:

Ruby実行中に、途中経過や処理結果などをテキストファイルに書き込んだもの。デバッグなどに使用されます。

WEBアプリ開発では、とりあえずlogを見れば原因が大方分かります。

 

logレベル:

logレベルによって、logの重要度が変わります。

これを利用すると出力するログを分けることもできます。

 

アルゴリズム

コンピュータで、ある目的を達成するための処理の手順のこと。

(例)

目的/1から10までを順に足し合わせてその都度表示する

処理の手順/

・1から10まで1ずつ増える変数1を定義する

・足し合わせた数値を格納する変数2を定義する

・変数1が10になるまで処理を繰り返すWhile文を書く

・While文の中に数値を足し合わせる処理を書く

・While文の中に足し合わせた数字を表示する処理を書く

 

スコープ:

ある変数を利用できる範囲のこと。

スコープの範囲外の変数を使うことはできない。

 

引数:

プログラムでメソッドなどを渡すことができる値。

スコープ外の変数をそのメソッドの中で使えるようにすることができます。

メソッド名を同じにしていれば、「メソッドを呼び出す部分」に書く引数と「メソッドを定義している部分」に書く引数の名前は、一致している必要はない。

 

今後に向けて

Rubyは、ストレスなく楽しくコードが書けるのが特徴のようです。

それは、

・全ての値がオブジェクトになる(オブジェクト指向)

・シンプルな表記や文法ルール

・書いてすぐに実行できる

・豊富で統一されたメソッド

・必ず返り値が返ってくる

が関係しているようです。

 

つまり、、、

・直感的にプログラムを実装できる

・覚えやすい、調べやすい

・プログラミングに没頭しやすい

・新しい発見や自分なりの表現ができる

から楽しくコードが書けるのではないでしょうか。

 

あとは、優秀なフレームワークRuby on Rails」があるのも魅力です。

 

そして、ここでもカプセル化の部分でセキュリティ面の話が出てきました。

 

エンジニアになる上でセキュリティ管理は必須ですね。

 

なぜセキュリティが必要なのか。これをしっかりと言語化したいと思います。

 

次はRuby on Railsの予定でしたが、その前に簡単にWebサービスにおけるセキュリティについて調べてみよるかもしれません。

 

参考資料

今学ぶべきプログラミング言語ランキング【2019年最新版】 | CodeCampus

今さら聞けない!Rubyとは【初心者向け】 | TechAcademyマガジン

【Ruby入門】loggerの使い方まとめ | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

HTML/CSS

爆速学習のHTML/CSS編です。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

 

内容

Webページの構成

Webページの構成は「箱とテキスト」から成り立っているイメージです。

 

HTMLとは?

Webページの骨組みを構成するマークアップ言語です。

箱とテキストの存在を示すことができます。

htmlファイルをブラウザ上にドラッグ&ドロップすれば、ブラウザにHTMLが反映されます。

 

特徴

・左上に重力のある、箱の積み重なり

入れ子構造になっている(親要素と子要素)

・ブロック要素(箱)とインライン要素(テキストに役割を持たせる)がある

 

構造

html要素の中に、head要素とbody要素が存在しています。

HTMLの語彙と構文は、標準化団体「W3CWorld Wide Web Consortium)」が策定する仕様で定義されています。

重要なのが、HTMLタグの定義です。HTMLタグ内を定義することで、今からどんなことを書いていくのかを示すことができます。

 

html要素:

HTML文章の始まりと終わりを示している。<!DOCTYPE HTML>を冒頭に記述することで、この文章がHTML文章であることを宣言する。

 

head要素:

メタ情報(サイト自体に関する情報)を定義する部分。

ここに記載したコードは、ブラウザ内には表示されません。

cssファイルのありか・javascriptファイルのありか・文字に関する情報などを記載する。

 

body要素:

ここに記載したコードがブラウザ内に表示されます。

 

HTMLタグ:

要素名が必ず必要です。要素名によって、今から何を書くのかを示すことができます。

場合によって、属性名・属性値の定義も行います。

 

CSSとは?

Webページの骨組みを装飾するマークアップ言語です。

HTMLで存在を示した箱やテキストの大きさ・色・並び方を指定することができます。

 

構造

セレクタ・プロパティ・値から成っています。

セレクタは、要素に「id」「class」などの属性値を付与し、その値で要素を特定することもできる。

セレクタは基本的にclassを利用する。

 

セレクタ:適用する場所

プロパティ:適用すること

値:どのくらい

 

HTMLがブラウザに表示されるまで

・ブラウザがW3Cの仕様に基づき、HTMLファイルを読み込む

・head要素を解釈して、ブラウザがサーバーにリクエストしてデータを取ってくる

・body要素を解釈して、head要素のデータに基づき目に見える様にブラウザに表示する

 

用語

UI(ユーザーインターフェース):

ブラウザ画面のうち、要求したページが表示されるメイン ウィンドウを除くすべての部分。

ブラウザのユーザー インターフェースは正式な仕様では規定されていません。

どこのブラウザも似た様な仕様になっているのは、決められた仕様があるためではなく、。

◆共通するユーザー インターフェース要素

URI を入力するためのアドレスバー
・[戻る] ボタンと [進む] ボタン
・ブックマーク機能
・現在のドキュメントを更新するための [更新] ボタン、読み込みを中止するための [中止] ボタン
・ホーム ページに移動するための [ホーム] ボタン

 

レンダリングエンジン:

情報(データ)を読み込んで、特定のルールに従い適切な表現に変換する。

HTMLのhead要素に定義されており、これによりHTMLが目に見える形となってブラウザに表示される。

 

今後に向けて

次はRubyをまとめます! 

 

駆け出しエンジニア必見!WEBサービスとインターネット【基礎】

この記事は私が転職活動中にまとめたものです。

 

今回の内容は、インターネットとWEBサービス、およびにWEBサービス開発についてまとめたものになります。

 

当時は私自身全くインターネットとかWEBについて理解できていなかったので、そんな自分にも分かりやすく、さらに面接等で自分の言葉で説明できるようにまとめた記事になっています。

なので、駆け出しエンジニアの方にも分かりやすい内容になっているかと思います。 

 

では早速ですが、本題に入ります。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

内容

WEBサービスとは?

WEB(インターネット)上で、サービスを提供するための技術、もしくは提供されるサービスのことです。

 

諸説あるようですが、WEBサービスはどちらの意味も含んでいるようです。

 

WEBサービス開発を職業にしている側とWEBサービスを使用する側で、WEBサービスの捉え方は変わってきそうですね。

 

WEBエンジニアは、文字通りWEBサービスを開発する人のことです。

インターネットを利用してプログラム同士を連携させて、利便性を向上させる仕組みを使いこなすプロです。

 

WEBサービスの流れ

WEBブラウザからWEBサーバにHTTPで「サイト・アプリを見せてください」などの指示を送る(リクエスト)

・WEBサーバ内でプログラム同士を連携させたり、データベースサーバからデータを取ってきたりして、データを準備(サーバサイド)

・サーバサイドのデータをWEBブラウザが読み取れるように、HTML/CSS/Javascriptなどを使ったソースコードに書き換える(フロントサイド)

・HTMLのソースコードをHTTPでWEBブラウザに送る(レスポンス)

WEBブラウザがHTML/CSSで記述されたソースコードを人間が見やすいように変換して表示する

 

インターネットとWEB

インターネット ≧ WEB

WEBはインターネットの機能の一つです。

 

【インターネット】

情報伝達のために世界中のコンピュータやスマホなどを相互に接続する通信網(コンピュータネットワーク)のことです。インターネット・プロトコル(IP)という通信方式を使って相互に接続して通信をしています。

※IPの通信例:

 ・ブラウザからドメイン名を入力

 ・ドメイン名は、いくつかのDNSサーバを経由して、グローバルIPアドレス(インターネット上の住所のような役割)に変換される

 ・ルータを介して、グローバルIPアドレス元にWEBサーバなどに問い合わせする(処理の指示)

 ・WEBサーバなどからレスポンスがある

 ・レスポンスをルータがプライベートIPアドレスを元に、要求のあったブラウザに返す

 

語源は「インターネットワーク」からきていて、inter=「相互」とnetwork=「網」に分けると意味が分かりやすいですね。

 

情報伝達方法は、時代によって変わってきました。

狼煙や太鼓・法螺貝を鳴らす、飛脚、手紙、電話、ラジオ、テレビ、インターネットなどなど。

インターネットはまさに現代を象徴する情報伝達方法なんですね。

  

【WEB】

インターネット・プロトコルを前提・応用した「HTTP通信方式(通信プロトコル)」を使って、「HTML」を「WEBブラウザ」に表示できる仕組み。要は文書を公開・閲覧できるシステムです。

 

正式名称は「World Wide Web」で、大規模な文書間の繋がりを図示すると複雑な蜘蛛の巣に見えることからきているようです。

 

同列の位置に「Email」「IP電話」「オンラインゲーム」「Skype」などがあります。カテゴリーに分けると、親フォルダがインターネットで、子フォルダがWEBやEmailになります。

 

WEBサービス開発の流れ

企画:ターゲット・背景・目的・目標を決め具体的なWEBサービスの構想を練る。

設計:サイトマップワイヤーフレームワーク・データベース設計・機能要件・言語/フレームワーク・タスクの洗い出し・工数/作業員数把握・スケジュール作成。

資金調達:サービスを作るために資金を調達する。

開発:プログラミングを行う。ウォーターフォール開発とアジャイル開発で開発の進め方が違います。

リリース:最後の確認を行い、アップロードをして、ドメインを購入する。

プロモーション:宣伝方法を決めて宣伝する。

保守/運用:システムの正常な稼働を維持し、不具合などあれば修正を行う。

終了:運営できなければサービスを終了させます。

 

WEBエンジニア

上記でも少し書きましたが、WEBエンジニアとは「WEB上での使用に特化したシステムの設計・開発・運用・保守を専門的に行う人」のことです。

WEBを通して操作するシステム開発がメインの職業になります。

 

システムエンジニアが設計した仕様書を元にWEBエンジニアが開発を進める場合や、設計もWEBエンジニアが行う場合などもあり、厳密な区切りはないようです。

 

資格はなくてもWEBエンジニアにはなれます。

しかし、企業も利益を求めているので、実務未経験者がばりばりのIT開発会社に採用されるのは難しいでしょう。

 

必要スキル

JavaやHTMLなどWEBに関連するプログラミングスキル

ネットワーク・LAMP環境・データベース・セキュリティ・Git・サーバに関する知識

問題を見極める力

タスク管理能力(優先順位を見極める)

 

将来性

現状は、WEBアプリが進歩し開発が盛んに行われているので、WEBエンジニアの需要も高いようです。

なので、将来性は高い状態が続くと思われます。

 

ただ、それも確実とは言えません。

最近ではブロックチェーンが発達してきています。

やりとりが発生するアプリはブロックチェーンでも作成することができます。

 

技術進歩が速いIT業界では常に自分のスキルをアップグレードすることが大切です。

 

用語一覧

インターネット・プロトコル(IP):

複数の通信ネットワークを相互に接続し、データを中継・伝送するための通信規約(プロトコル)。例えば、日本語しか喋れない人と英語しか喋れない人が、言葉だけでお互いの意思を疎通することはできないですよね?お互いに「りんご=Apple」のように決まり事(規約)があって、初めて意思の疎通ができます。

 グローバルIPアドレスとプライベート(ローカル)IPアドレスがある。現在普及しているのはIPv4(IP version 4)で、32ビットのアドレスを用いている。

 

グローバルIPアドレス

IPアドレスを管理しているプロバイダから、機器の一台一台に全世界で一意に割り振られる番号。日本ではJPNICという機関が管理している。プロバイダ契約は、原則家庭や会社など一つだけです。なので、ルータにグローバルIPアドレスが割り振られることが多い。インターネットと通信をしているのは、個々のパソコンではなく、ルータになります。グローバルIPアドレスは、インターネットに接続する度にプロバイダが割り振ります。

 

プライベートIPアドレス

ルータがインターネットからのレスポンスをパソコンに反映させるために必要な番号。個々のパソコンに割り振られるIPアドレス。同一ネットワーク内(家庭や会社)でのみ通用する番号。申請などは不要で、LANの中で自由に使うことができる。

 

ルータ:

インターネットと個々の機器の間で通信を行うのに必要な機器。ネットワーク上の所属する家庭や企業のインターネットと外部のインターネットを接続させる。

 

ネットワーク(net=「網」work=「作られたものごと(漠然とした表現のため要注意)」):

IT業界においては、複数のコンピュータ同士を接続したもの(コンピュータネットワーク)やその通信網としての認識が一般的。

 

HTTP(Hypertext Transfer Protocol):

クライアントサイドとサーバサイドの通信規約。

 

HTML:

WEBブラウザで情報を閲覧するためのページのデータを作ることができる言語。

 

WEBブラウザ

WEBの世界を覗くための窓。

HTMLで書かれたWEBページを人間が認知しやすいように見せてくれる。

主に使われる言語は、「HTML」「CSS」「Javascript」。

ブラウザの種類は、「InternetExplor」「Chrome」「Edge」「FireFox」「Safari」など。

 

アジャイル開発:

どの開発手法を採用するのか臨機応変に決める開発手法。

スクラム開発が有名。プロジェクトは製品開発を担当するチームやテストを担当するチームなど幾つかのチームが参加し、密に連携を取りながら「小さな」機能を開発する作業を繰り返し、完成を目指します。

短期間での打ち合わせと小さな機能を完成させて随時リリースしていくので、可変的で双方向にクリエイティブな開発ができる。

一方で、頻繁な変更が可能なので、しっかりと仕様を定めておかないと、品質を落としかねない。最悪の場合は、プロジェクトが完成できなかったり、開発途中でプロジェクトの仕様を根本から覆すことにもなりかねません。

 

ウォーターフォール開発:

プロジェクト完了期日が決定しており、さらに製品の最終仕様が開発の途中で変更されないなど、緻密な計画を立てて最後まで仕様を変更しない開発手法。

簡潔で安定した開発ができ、高品質なサービスをリリースできます。開発途中でエンドユーザーに関わることが少ない。

一方で、長期のプロジェクトにも関わらず仕様変更もできず、コストもかかります。

 

今後に向けて

WEBエンジニアてどこからどこまでする人なんだろう?

 

理解が深まると、他にも気になるところが出てくる!

新しくやりたいことも出てきました!

 

でもとりあえずはHTML/CSSの勉強に移ります。

【MySQL】外部キー制約があるテーブルorデータの削除

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

背景

 開発環境で変更したデータベースが本番環境には反映されていなかったので、本番環境のMySQLを直接変更することにしました。

 

内容

実行内容

・カラム削除

・テーブル削除

・テーブル内の全データを一括削除

 

カラム・テーブルの削除

カラムを削除しようとするとエラーが出ました。

ERROR 1025 (HY000): Error on rename of '・・・' to '・・・' (errno: 150)

 

どうやら外部キー制約が邪魔をしているみたいです。

外部キーの定義を解除して、カラムを削除します。

 

外部キーの値を確認する。

mysql> show create table tablename;

・・・
mysql> CONSTRAINT `TABLE_FK1(外部キーの値)` FOREIGN KEY (`column_id`) REFERENCES `column` (`id`),
・・・

 

外部キー制約を解除する。

mysql> ALTER TABLE rent_houses DROP FOREIGN KEYTABLE_FK1(外部キーの値);

 

 解除すると、カラムもテーブルも削除できるようになっているはずです。 

mysql> ALTER TABLE rent_houses DROP column_id;
mysql> drop table tablename;

 

データを一括削除

外部キー制約があるテーブルのデータを一括削除します。

こちらは外部キー制約を一時無効にしてから、データを削除します。

 

外部キー制約を一時無効 → データ削除 → 外部キー制約を有効

mysql> set foreign_key_checks = 0;
mysql> truncate table table_name;
mysql> set foreign_key_checks = 1;

 

【余談】データを挿入

$ heroku run rails db:seed

 

今後に向けて

 マイグレーションしても本番環境のデータベースに反映されない問題が発生してます・・・

 

先に開発環境の方を完成させるかどうか悩み中。

【Rails】bootstrap4対応のkaminariデザイン

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

メリット

bootstrap4に対応したkaminariデザインの導入方法がわかる

 

背景

 ページネーション実装のために、kaminariを導入しました。

 

そのままのデザインではダサかったので、bootstrap4に対応したデザインにしようと考えました。

 

内容

gemの「kaminari」を導入

railsのgemファイルに「kaminari」を記述して、bundle installします。

 

bootstrap4対応のビューを作成

$ rails g kaminari:views bootstrap4

事前にbootstrap4の導入及びに設定は行っておく必要があります

 

これでかっこいいデザインのページネーションになると思います。

 

今後に向けて

最近難しいことができてない・・・

 

就活と退職手続きに終われる毎日だけど、少しで良いからプログラミングの時間を取るようにしていきたい。