ADACHI TECH BLOG

ADACHI TECH BLOG

フリーランスwebエンジニアを目指す22歳の発信ブログ

【Rails初心者向け】Modelの操作法を解説

こんにちは、足立です!
今回はRailsのModelについて解説させていただきたいと思います。


Modelとは?

f:id:adachi0055:20190610113427j:plain
フリー素材モデルのアドリアーノ・リマさん

前回の記事でコントローラ(Controller)とビュー(View)のお話をしましたが、Railsアプリにはもう一つ、モデル(Model)と呼ばれる重要な要素があります。
ここで一度、それぞれの役割について整理してみましょう。

名前 役割
Model データベースとのやり取りを行う
View htmlやcssの指示通りに画面を表示させる
Controller ModelとViewに指示を出す

つまりModelとは、Controllerの指示を受けてデータベースとやり取りを行うものです。
モデルを作成することで、twitterを例にすると以下のようなことが可能となります。
・入力した値で新しいツイートを作成する
・あるツイートの情報を取得する
・あるツイートを削除する

それでは、実際にRailsでのModelの操作を学んでいきましょう!

Modelの操作

Modelの作成法

今回は例として、tweetモデルを作成します。

ターミナル

$ cd ~~~               #モデルを作成したいrailsアプリに移動しておく
$ rails g model tweet  #モデル名は単数形で。頭文字は大文字小文字どちらでも可

上記コマンドを実行すると、db/migrate内にマイグレーションファイル(作成日時_create_tweets.rb)が生成されます。
マイグレーションファイルを編集していきましょう。

db/migrate/マイグレーションファイル

class CreateTweets < ActiveRecord::Migration[5.2]
  def change
    create_table :tweets do |t|
      t.text :body              #text型のbodyカラムを追加

      t.timestamps
    end
  end
end

マイグレーションファイルの編集が終わったら、ターミナルでマイグレーションファイルの記述を実行します。

ターミナル

$ rake db:migrate      #マイグレーションファイルを実行

エラーが出なければtweetモデルの完成です!

Modelでデータベースとやり取り

それでは実際にtweetモデルを使ってデータベースとやり取りをしてみましょう。
今回はrailsのコンソールを使用します。

ターミナル

$ rails c                          #railsのコンソールを立ち上げる
pry(main)> @tweet = Tweet.new()      #Tweetモデルに基づいた新しい変数@tweetを作成する
pry(main)> @tweet.body = "こんにちは"   #@tweetのbodyカラムに文字を代入
=>"こんにちは"
pry(main)> @tweet.save               #@tweetをデータベースに保存する
=> true

以上でデータベースのtweetテーブルの1番目に@tweetの情報が保存されました!
最後に、保存されたデータを編集してみましょう。

ターミナル

pry(main)> @tweet = Tweet.find(1)    #保存されているidが1のtweetを取得する
pry(main)> @tweet.body = "さようなら"   #保存されている文字列を変更する
=> "さようなら"
pry(main)> @tweet.save               #変更した内容を保存する
=> true

他にも削除やコピーなど様々なことができますので、調べてみると勉強になるかと思います!

まとめ

いかがだったでしょうか。
MVC(モデル、ビュー、コントローラ)はRailsアプリと切ってもきれない関係にあるので、ぜひマスターしましょう!

【Rails初心者向け】アプリ作成から「Hello,World!」表示までの手順を紹介

f:id:adachi0055:20190606112033j:plain

こんにちは!足立です。
今日は備忘録も兼ねて、Ruby on Railsのアプリ作成からビュー表示までの一連の手順を紹介しようと思います!よろしくお願いします。


アプリケーションの作成

ターミナル

$ Rails new rails-twitter -d mysql  # アプリケーション作成
$ cd rails-twitter            # 作成したアプリのフォルダに移動
$ rake db:create                # データベースを作成

Rails new ○○○ -d mysqlによりRailsアプリを作成することができます。
しかし、このままでは何も表示できないため、ルーティング・コントローラ・ビューの三つを作っていきます。

ルーティング・コントローラ・ビューの作成

ルーティングの設定

config/routes.rb

Rails.application.routes.draw do
  get "tweets" => "tweets#index"
end

ルーティングの設定によりコントローラのアクションにURLを割り当てることができます。
今回は/tweetsのURLにアクセスするときはtweetsコントローラのindexアクションを使用してください!と指示しました。

続いて、tweetsコントローラとindexアクションを作成していきます。

コントローラの作成

ターミナル

$ rails g controller tweets

ターミナルで上記のコマンドを実行することでtweetsコントローラが作成されます。
tweetsコントローラの中身も編集していきましょう!

app/controllers/tweets_controller.rb

class TweetsController < ApplicationController
  #indexアクションを定義。中身はひとまず空っぽで良い。
  def index
  end

end

これでtweetsコントローラのindexアクションを定義することができました。
indexアクションの中身は空ですが、特に指定しない場合は「app/views/tweets/index.html.erbを読み込んでください」といった命令が自動で実行されるため、後はHTMLを書くだけで画面を表示することができます。
では、HTML文を書いていきましょう!

ビューの作成

app/views/tweets/index.html.erb

<h1>Hello world!</h1>

最後にターミナルでrails sを行いRailsサーバーを起動させます。 その後、ブラウザで「http://localhost:3000/tweets」にアクセスして以下の画面が表示されていれば成功です!

f:id:adachi0055:20190609140359p:plain

まとめ

いかがだったでしょうか?
ここから更にモデルを追加したり、gemの機能を追加したりすることで様々なサービスを作ることができます。ぜひ調べて実装して見ましょう!

【受講するか悩んでる方へ】TECH:EXPERTフリーランスコースを受講者がレビュー

こんにちは!足立です。
今日はTECH:EXPERTを紹介させていただきたいと思います。

TECH:EXPERTとは?

f:id:adachi0055:20190606112058p:plain

TECH:EXPERTとは、プログラミング未経験からwebエンジニアになるためのプログラミングスクールです。
渋谷を始め、大阪、名古屋、福岡にも展開しています。
夜間コースやオンラインコースなど複数の通い方があるのですが、今回は私が受講した短期集中フリーランスコースの話を実際の体験談を含めてさせていただきたいと思います。

どのくらいの期間で、何ができるようになるの?

f:id:adachi0055:20190606111715p:plain:w300

短期集中フリーランスコースは10週間あり、一週間あたり最低60時間を勉強に当てることになります。
そのため合計の勉強時間は600時間。それだけ勉強すればもうプロになれるのでは?と思ってましたが・・・

最終的に、カリキュラムをこなして身につけられる技術は以下の通りです。
Ruby(初心者に毛が生えたレベル)
html/cssjavascriptを用いないサイトなら何でも作れるレベル。ただし、Bootstrap等のCSSフレームワークには触れない)
javascriptjQueryでHTMLやCSSの操作および非同期通信が可能)
github
AWSrailsアプリを世界に公開できる)
SQL
haml/scss
railsアプリのテスト
チーム開発

目立つ部分はこんなところだと思います。
一線で活躍されてるwebエンジニア様に比べたら赤子も当然、まだまだ勉強不足ですね。
それでも、10週間前の未経験の自分と比べたら大きく成長したのを実感できます。

TECH:EXPERTの良かった点

メンターの質が良い

TECHにはカリキュラムの内容が分からなくなった時に質問できるメンターさんと呼ばれる方々がいますが、非常に質は高いです。少なくとも、受講生よりカリキュラムへの理解が浅いということはありません。

ただ、分かりにくい質問をすると話が纏まらなくなることがあるので注意しましょう!(ネットでメンターさんの評判がバラバラなのはこのせいだと思います)
いっそ最初に分かりやすい質問の仕方を聞いておくと吉かも?

チーム開発ができる

チーム開発を体験できるプログラミングスクールって他にあるのかな?ってぐらい貴重です。
就職してバックエンドが関わる業務に携わるとチームで開発するのが基本になるので、先に体験できるのは非常に強みになります。

多くの人と関われる

何よりも一番大きいのは、多くの方と関わることができる点だと思います。
メンターさんを始め同期、先輩、後輩、ライフコーチさん(カリキュラム以外の相談役)などなど、話せば話すほど様々な考え方を吸収することができます。
勉強の仕方、就活、etc...ぜひ積極的に話しかけてみましょう!

TECH:EXPERTの微妙な点

料金が高い

これに尽きます。短期集中スタイルの受講料は現在税抜き598,000円
「高いお金を払っているから頑張らなきゃ!」と勉強の意欲は湧きますが、卒業して元を取るまで金銭面的には大きな痛手になるので、受講を検討している方は財布と要相談です。

カリキュラムに付いていけなくなることがある

事前学習でカリキュラムを進めておかないと、間違いなく周りに置いてかれてしまいます。
その結果、カリキュラムを終わらすことができず、学校に来なくなってしまった方がちらほら・・・
短期集中コースは開始2週間前から教室を利用できるので、その間に基礎カリキュラムを終わらせることをお勧めします!

まとめ

大雑把にTECH:EXPERTを紹介させていただきましたが、いかがだったでしょうか?
もし何か質問等ございましたら、お気軽にコメントしていただけると嬉しいです!

自己紹介と今後の記事について

こんにちは!足立と申します。

自己紹介

f:id:adachi0055:20190604133314j:plain
放射線(radiation)専攻からフリーランス(fleelance)を目指すので、ネズミ(rad)が槍(lance)を持っています笑

生まれは静岡、現在は東京住みの22歳です。
大学では診療放射線を専攻していましたが、その過程でjava/C++/MATLABに触れプログラミングの魅力に取り憑かれました。
大学卒業後はTECH:EXPERTの短期フリーランスコースを受講。現在はカリキュラムを全て終え、お仕事探ししている最中です。

ブログの内容

このブログでは主に、以下のことについて書いていこうかなぁと思います。
webサイト/アプリ開発における技術的なお話
未経験からwebエンジニアを目指す過程のお話
TECH:EXPERTのお話(通ってみた感想等)
特にTECHでの経験談はこれからwebエンジニア目指す人にとって役立つかと思います!
目指せ週2回以上更新。よろしくお願いいたします。