駆け出しプログラマーの備忘録

異業種から訪れたIT業界について赤裸々トークを繰り広げる予定!                                 あ、私はプログラミングとは無縁の人生を送ってきたクソザコ野郎です٩( 'ω' )و

駆け プロ

#47 【Ruby】Rubyを用いたデータベース連携の勉強会に参加してみて

f:id:momotaroch:20180504182802j:plain

Rubyを用いたデータベース連携の勉強会に参加してみて

 

Railsを勉強していてデータベースの連携がいまいち理解できませんでした。

そんな時に、Rubyを用いたデータベース連携という勉強会が開かれることを知り、しのごの言わず参加してきました。٩( 'ω' )و

 

当日は14時〜17時までの計3時間

人数は合計8人。少ない!

今回は費用として2500円かかっています。その分気合が違いますよね。。

f:id:momotaroch:20180421230323j:plain

 

詳しくは書きませんがどのような感じだったのか備忘録っぽく書きます。

 

▼大まかな流れ

 

 

1. codeanywhereを導入し、準備する

今回はcodeanywhereを用いてターミナル操作やRubyとのデータベース連携を行いました。

はじめてのクラウド上の環境設定で戸惑いながらもなんとか設定完了。

(他の方、絶対経験者でした。早いですもん・・)

 

ちなみにcodeanywhereはこちら。

codeanywhere.com

 

2. CLISQL文を書いてみる

ちなみにCLIコマンドラインインターフェースという意味。

要するにターミナル上でファイル操作や場所移動などを行うコマンドのこと。

$ ここにCLIを記述

 

例として、

.tabel」という記述をすると ($ .table)

データベースに登録されているテーブルを表示されるよ。

authorテーブルとbooksテーブルがあれば、

author

books

みたいな感じで表示してくれる命令。

ちなみに、最初はテーブル表示してもずれて見にくいので下記の記述を。

.header on

.mode colum

 

SQL文については他の方の記述を見てね。

今回はActiveRecordがメインだったため基本的なSQL文はちょこっとだけでした。

 

ちなみにこの時、はじめてActiveRecordを知りました。。

f:id:momotaroch:20180421230332p:plain

 

3. Rubyの導入後、いよいよデータベースを操作してみる

Rubyの最新版?(2.4.0)をインストールした後、

データベースをRubyから操作してみます。

 

Rubyからデータベースを操作するgemこそ

ActiveRecord

 

今回の一番重要な箇所の気がしました。

(知らなかったので・・)

 

これがあるから長ったらしいSQL文を書かなくていいみたいですね。

いやー便利ですね。覚えるの大変ですけど。。

 

gem install activerecord

gem install sqlite3

 

ちなみにgemとはツールのことみたいです。

 

4. バリデーションなんかも使ってみる

validates : name , presence : true

この記述をデータベース参照のクラス内に記述するだけで

データベースに値を保存しようとするときに値がなければエラーがおきます。

 

▼book_shelf.rb

class Author < ActiveRecord::Base

  validates : name , presence : true   

end 

 

CUI

load "./book_shelf.rb" 

author = Author.new

author.gender = "male"

author.save

このように保存しようとすると上で指定したnameカラムに値が追加されていないためエラーに。

ちなみに上のCUI上の流れが一連のデータベースに値を追加するときの流れです。

 

他にもアソシエーションも学びました。が、長くなるため割愛。 

 

5. まとめ

今回はお金を払っている文きちんと学べた気がします。

そして、ペースが早いのなんの・・・。

 

私はついていくのが精一杯。(´-`)

眉をひそめる人なんていなかったです。私以外・・・。

 

だけどペースが早い分、色々なことを学べました。

濃密な時間だったと思います。٩( 'ω' )و

 

いや、当たりでしたね。

ただ、復習しないと忘れそうで怖いです。

(だから記事に残しているんですけどね)

 

あと、勉強会によって雰囲気や内容がかなり違うなと感じました。 

以前の勉強会の記事と比べてみてください。。

momotaroch.hatenablog.jp

 

 

これでRubyおよびにRuby on Railsのデータベースの概念が少し分かりましたので

この調子で頑張ろうと思います。٩( 'ω' )و

f:id:momotaroch:20180406142205j:plain

頑張ろー

 

6. メモ置き場

個人のメモ置き場のため文句はなしで・・・。指摘は大歓迎。

# terminal)) $ sudo -y yum install sqlite


=begin

 

##sudo => superuser という意味。

何でもできるsudo をつけないと失敗する場合がある


##sqliteはテキストファイルに書き込むもの##MySQLやpostgerSQLはアプリに保存される


###本番環境ではsqliteはおすすめしない###

 

###コマンドはCLISQLの2つある###
ターミナル上からデータベースを操作するときはCLIを立ち上げるコマンドラインインターフェース
CLIに対してのコマンドCLIコマンド
CLIは頭に.ドットをつける


実際にデータベースを操作するコマンドをSQLという


ユニークな情報=primary key(自動採番)


CLIコマンド

.header on

.mode colum
これでselect * from テーブル名を見やすくする


カラム追加alter table

追加するテーブル名 add column 追加するカラム名 追加するカラムの属性例:alter table books add column author_id integer
すでにあるカラムに追加する方法update文
例:update books set author_id = 1 where id = 1;

 

macのターミナルでいじる場合も基本同じ。

ただ、centOSの場合は yum だっただけ。macOSの場合はbrew??


##rvmは複数のrubyを扱うものrvm install バージョン数

例:rvm install 2.4.0


ActiveRecordrubyを介してデータベースをいじるもの

長いSQL文をいじらなくて済む


class 可読性が悪くなる 再利用性の低下 を防ぐもの

end

 

###gemとはツールのこと###


ruby からデータベースを操作するgem

ActiveRecord


gem install activerecord
#Rubyがsqlite3を扱うためのgemをインストールする

gem install sqlite3

 

irbコマンド

rubyを実行できる環境を立ち上げる


保存していたbook_shelf.rbファイルをirb上で使えるようにする

load '呼び出すファイル名(ディレクトリ込み)'


ログを出すためのコード

ActiveRecord::Base.logger = Logger.new(STDOUT)

 

バリデーション妥当性を判断する

idはデータベースを保存した時に自動採番してくれる

▼基本的な流れ
①変更したら必ずload

②book = Book.new

③book.title = ""book.author_id = 1
④book.save

 

アソシエーションの使い方

has_many :books

belong_to :author


これで各データベース間の検索のしあいがスムーズになる

 

=end

 

 勉強会のペースが早くてメモとる暇がなくぬけぬけになってしまった・・。

反省ですな。_(┐「ε:)_

  

終わりじゃ

f:id:momotaroch:20180421230312j:plain

 

にほんブログ村 IT技術ブログへ
にほんブログ村