見出し画像

RailsでTodoアプリを作ってみよう

RubyにはRailsというWebアプリケーション開発のためのフレームワークがあります。

非常に人気のあるフレームワークなので、興味のある方もいらっしゃると思います。

そこで、本記事ではRailsで簡単なTodoアプリを一から作成する手順を紹介しようと思います。

Railsでのアプリ開発がどのようなものかをざっと理解していただければと思います。

今回作成するTodoアプリは下図のような追加と削除ができるだけの簡単なものです。

画像10

Railsでアプリ開発を行う上で知っておいていただきたいことは、RailsはMVC (model-view-controller)というアーキテクチャパターンを採用しているという点です。

まずは下図を見てください。

画像11

上図はRailsというWebフレームワークの学習教材である「Railsチュートリアル」の中の図で、MVCアーキテクチャパターンを採用しているRailsでどのような流れで処理が進められているかを示している図です。

下記に該当箇所のRailsチュートリアルのリンクを貼っておきます。

図に登場しているModel、View、Controller、routerの4つをそれぞれ作成しながらアプリ開発を行っていくことになります。

実行環境

Railsのインストール方法ですが、ネット上で「rails インストール」で検索するといろいろな記事が見つかります。

私が普段利用しているのは「GO RAILS」というサイトで、そのサイトで紹介されている手順でRubyとRailsのインストールを行っています。

画像12

下記にリンクを貼っておきます。

本記事ではLinux環境にRailsが既にインストールされている状態から始めることにします。

画像1

実行手順

大きな流れは次の通りです。

1.プロジェクトの作成
2.Modelの作成
3.Controllerの作成
4.Viewの作成
5.routerの作成
6.実行

1.プロジェクトの作成

「rails new mytodo」を実行します。

画像2

mytodoという名前のプロジェクトが自動で作成され、プロジェクトの中には下図のようにフォルダやファイルが存在しています。

画像3

Railsでアプリ開発を行う場合は、プロジェクトの中に存在する自動生成されたファイルを変更したり、新しくフォルダやファイルを作成したりしながら開発を進めることになります。

2.Modelの作成

「rails g model Todo text:string」を実行します。

画像4

「rake db:migrate」を実行します。

画像5

データベース上にいろいろなテーブルが作成されました。

3.Controllerの作成

「rails g controller Todos」を実行します。

画像6

app/controllers配下の「todos_controller.rb」を下記のように変更します。

todos_controller.rb

class TodosController < ApplicationController
 def index
   @todos = Todo.all
 end
   
 def addTodo
   todo = Todo.new(todo_params)
   todo.save
   redirect_to '/todos' 
 end
   
 def deleteTodo
   todo = Todo.find(params[:id])
   todo.destroy
   redirect_to '/todos'
 end
   
 private
   def todo_params
     params.permit(:text)
   end
end

4.Viewの作成

app/views/todos配下にindex.html.erbを作成して下記のコードを入力します。

index.html.erb

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>My Todo</title>
</head>
<body>
 <h3>My Todo</h3>
 <form action="/todos" method="POST">
   <input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">
   <input name="text" placeholder="Input here...">
   <button type="submit">ADD</button>
 </form>

 <h5>Todo List</h5>
 <ul>
   <% @todos.each do |todo| %>
   <li>
     <%= todo.text %>
     <form action="/todos/<%= todo.id %>"
           style="display: inline;" 
           method="POST">
       <input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">
       <input name="_method" type="hidden" value="DELETE">
       <button type="submit">DEL</button>
     </form>
   </li>
   <% end %>
 </ul>
</body>
</html>

5.routerの作成

config配下の「routes.rb」を下記のように変更します。

routes.rb

Rails.application.routes.draw do
 get '', to: 'todos#index'
 get 'todos', to: 'todos#index'
 post 'todos', to: 'todos#addTodo'
 delete 'todos/:id', to: 'todos#deleteTodo'
end

6.実行

「rails s」を実行

画像7

ブラウザで「http://127.0.0.1:3000」を開くとアプリが起動します。

画像8

完成後のプロジェクト構成

完成後のプロジェクト構成は下図のとおりです。

実行手順で登場したファイルを赤線で囲っています。

画像13

上図の続きです。

画像14

学習教材の紹介

上記では簡単なTodoアプリを一から作成する手順を紹介しましたが、Railsでのアプリ開発のイメージを掴んでいただけたのではないでしょうか。

Railsに興味を持たれてRailsの学習を始めてみようと思われた方もいらっしゃると思いますので、Railsの学習教材について少し紹介しようと思います。

Railsの学習教材といえばRailsチュートリアルです。

本格的なアプリを作成しながらRailsというフレームワークを使ったWeb開発方法について学ぶことができる教材です。

画像9

下記にリンクを貼っておきます。

Railsチュートリアルに関しては以前下記の記事でRailsチュートリアルのアプリの動かし方を紹介しましたので、興味のある方はご確認ください。

チートシートの紹介

Railsにはたくさんのコマンドがあって、覚えるのが大変ですが、そんなときに便利なのがチートシートです。

例えば「rails cheatsheet」で検索するといろんなチートシートが見つかりますので、いろいろとチェックされてはいかがでしょう。

例えば下記のようなチートシートが見つかります。