Ruby on Railsの基礎

ruby開発
スポンサーリンク

最近推しのイベントが外れてしまってやる気が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アプリが閲覧できます。

ruby rails top

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が表示されたら成功です!

hello world

補足

railsを覚えるに当たっての最も重要だと私が感じているCoC(Convention over Configuration)=設定よりも規約についてですが、このHelloWorldアプリの中でも重要なポイントがあります。コントローラーの命名規則です。

コントローラークラス名、先頭は大文字で接尾辞にController。(HelloController)

コントローラーファイル名、コントローラークラスを小文字にしたもの単語の区切りはアンダースコア。(hello_controller.rb)

これ、かなり重要です。railsコマンドで作成した場合は意識しなくても自動で作成してくれますが、railsコマンドを使用しないで作成する場合も多いかと思います。この命名規則を覚える事がrails習得への第一歩だと感じました。

他にもrailsには規約がたくさんあるので、その辺意識すると良いです。

コメント