最近推しのイベントが外れてしまってやる気がZEROです。頭の中身もZEROになったので、こんな時こそ新しい言語の覚えどきですね。ってことでWeb業界で流行りのRubyをRailsフレームワーク使いながら勉強したいと思います。
Ruby on Railsとは
一言でいうと、Rubyのアプリケーションフレームワークです。以下の設計哲学がRailsでは貫かれています。
- DRY(Don’t Repeat Yourself)=同じ記述を繰り返さない
- CoC(Convention over Configuration)=設定よりも規約
同じことは二回書くなよ!?自分で下手に設定とかしないで規約に沿って書くんだぞ!?そうすれば間違い無いからな!!ということです。
環境構築
とりあえずRails触ってみたいので環境整えます。以下の4つあればOKです。
- Ruby
- Ruby on Rails
- Httpサーバー(Puma、Apache、Nginxなど)
- データベース(SQLite、MySQL、PostgreSQLなど)
rbenv等でrubyのinstall後、$gem install rails
でrailsをinstallしましょう。Httpサーバーはrails標準のpumaが使用できます。データベースですが私はMACを使用しているのでmysql使おうかと思います。お好みに応じて環境整えましょう。
$rails -v
でバージョンが表示されたらrailsがインストールされています。
とりあえず動かす!
新規アプリの作成をしましょう。適当なディレクトリで$rails new appName
で新規アプリが作成できます。とりあえず動かしてみようということ$rails s
作成したアプリのディレクトリでコマンド打ってください。sはserverの略です。
するとrails標準のHttpサーバーであるpumaが起動します。http://localhost:3000/にアクセスするとrailsアプリが閲覧できます。
HelloWorldページの作成
webアプリケーションと言えばMVC(Model, View, Controller)です。ひとまずHelloControllerを作成して、画面の表示までやってみます。$rails g controller hello
(gはgenerateの略)とコマンドを打つと必要なファイルを作成してくれます。
Running via Spring preloader in process 98218 create app/controllers/hello_controller.rb invoke erb create app/views/hello invoke test_unit create test/controllers/hello_controller_test.rb invoke helper create app/helpers/hello_helper.rb invoke test_unit invoke assets invoke coffee create app/assets/javascripts/hello.coffee invoke scss create app/assets/stylesheets/hello.scss
controllerとそれに紐づくview、スタイルシート、test用のファイルが作成されます。見慣れないファイルのhelper, coffeeについてですが、helperはコントローラー固有のビューヘルパーです。coffeeはCoffeeScriptの事で、この美味しそうなScriptはなんだ・・・一言で言うとJavaScriptのコードを生成するための言語です。詳しくはwikiでも覗いてみてください。基本使わないと思うのでとりあえずスルーします。
コントローラーを以下のように修正
class HelloController < ApplicationController def index render 'hello/index' end end
ビューを作成しましょう。app/views/hello/index.html.erb
railsのviewの拡張子は.html.erbです。htmlの中でrubyのスクリプトが使用できるテンプレートです。適当にhtml書きます。
<html lang="ja"> <head> <title>Hello World</title> </head> <body> <h1>Hello, World!!!</h1> </body> </html>
http://localhost:3000/hello/にアクセスした場合に作成したページを表示させるために、railsの/config/routes.rbのファイルを修正します。
Rails.application.routes.draw do # helloでgetアクセスされた場合にhelloコントローラーのindexが呼ばれる get 'hello', to: 'hello#index' end
その後、http://localhost:3000/helloにアクセスしましょう。HelloWorldが表示されたら成功です!
補足
railsを覚えるに当たっての最も重要だと私が感じているCoC(Convention over Configuration)=設定よりも規約についてですが、このHelloWorldアプリの中でも重要なポイントがあります。コントローラーの命名規則です。
コントローラークラス名、先頭は大文字で接尾辞にController。(HelloController)
コントローラーファイル名、コントローラークラスを小文字にしたもの単語の区切りはアンダースコア。(hello_controller.rb)
これ、かなり重要です。railsコマンドで作成した場合は意識しなくても自動で作成してくれますが、railsコマンドを使用しないで作成する場合も多いかと思います。この命名規則を覚える事がrails習得への第一歩だと感じました。
他にもrailsには規約がたくさんあるので、その辺意識すると良いです。
コメント