吉本集の個人ブログ
Web制作の技術について書いています。たまに日記も書きます。

【Rails】とりあえず「こんにちわ、世界!」

2015年9月18日 / category : rails

僕はまだ、そもそもRuby on Railsで何ができるかわかってません。
とりあえず、HTMLコーディングができるようなので、「こんちにわ、世界!」のページを作ってみようと思います。

まず、任意のディレクトリを用意します。そして、コマンドプロンプトでそのディレクトリまで移動します。

コマンドプロンプト – ディレクトリ移動
>cd C:¥works¥Rails¥sample

この任意のディレクトリに、アプリケーションに必要なファイルを生成します。
Railsが自動的に作ってくれるみたいです。

■アプリケーションを生成するコマンド
rails new アプリケーション名

このアプリケーション名は任意です。今回は、「helloworld」としました。

コマンドプロンプト – アプリケーションファイルを生成
>rails new helloworld
DL is deprecated, please use Fiddle
      create
      create  README.rdoc
      create  Rakefile

-- 省略 --

Using web-console 2.2.1
Bundle complete! 12 Gemfile dependencies, 53 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

この任意のディレクトリ(僕の場合はsampleフォルダ)に、アプリケーション名のフォルダ(helloworld)が生成され、その中に、めっちゃファイルが生成されました。
とりあえず、メインで触るのは、「app」フォルダです。

今回は詳しくは触れませんが、RailsはMVCパターンを採用していますので、そのパターンの構造でファイルが生成されています。
「app」フォルダ内のファイル構成ですが、

assetsフォルダ ・・・ アセットファイルが格納されます。
modelsフォルダ ・・・ Modelクラス
viewsフォルダ ・・・ Viewスクリプト
controllersフォルダ ・・・ Controllerクラス
helpersフォルダ ・・・ いまのところ不明
mailersフォルダ ・・・ いまのところ不明

となっています。

次に、とりあえず、HTTPサーバを起動してみます。
まず、対象のアプリケーションまでフォルダを移動します。

コマンドプロンプト – ディレクトリ移動
>cd C:¥works¥Rails¥sample¥helloworld

対象のアプリケーションまで移動したら、次のコマンドでHTTPサーバを起動します。

■HTTPサーバを起動するコマンド
rails server

コマンドプロンプト – ディレクトリ移動
>rails server
DL is deprecated, please use Fiddle
=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-09-18 18:49:00] INFO  WEBrick 1.3.1
[2015-09-18 18:49:00] INFO  ruby 2.0.0 (2013-11-22) [x64-mingw32]
[2015-09-18 18:49:00] INFO  WEBrick::HTTPServer#start: pid=10528 port=3000

HTTPサーバが起動しました。

http://localhost:3000/

にアクセスしてみましょう。デフォルトで用意されたページが表示されると思います。

ここに「こんちにわ、世界!」というテキストを表示させるのが、今回の目的です。
目的が見えてきたので、一旦

ctrl + C

でHTTPサーバーを停止させます。

さて、ページを作っていきますが、
最初に、コントローラークラスを生成します。

■コントローラークラスを生成するコマンド
rails generate controller コントローラクラス名

今回コントローラクラス名は「hello」とします。

コマンドプロンプト – コントローラークラス生成
>rails generate controller hello
DL is deprecated, please use Fiddle
      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

さらに色々とファイルが生成されました。
触りたいファイルは、コントローラークラスなので、次のファイルを開きます。

/app/controllers/hello_controller.rb

hello_controller.rb
class HelloController < ApplicationController
end

既に2行コードが書かれてるけど、意味はよくわからない。HelloControllerクラスが定義されてて、ApplicationControllerクラスを継承してるのかな。endってなんだ。ここでコードは終わり!っていう意味なのか。まぁ、とりあえず、気にしない。

このファイルを下記のようにコードを追加してみる。

hello_controller.rb
class HelloController < ApplicationController
	def index
		render text: 'こんちにわ、世界!'
	end
end

indexを定義して、「こんちにわ、世界!」の文字列をテキストとして表示されるって意味かな?
とりあえず、何をしたのかは置いておきます。

続けて、次のファイルを開きます。

/config/routes.rb

「app」フォルダがメインと言いつつ、「config」フォルダにあるファイルです。開くと、何やらコメントコードがいっぱい。
意味が分からないので、無視。
ここで何をしたいかと言うと、URLの仕組みを設定します。

routes.rb
Rails.application.routes.draw do
-- コメント文 省略 --
	match ':controller(/:action(/:id))', via: [ :get, :post, :patch ]
end

赤字のコードを追加してください。これがURLの仕組みです。

これで、全ての準備が整いました。
コマンドプロンプトのフォルダ先がアプリケーション名のフォルダ(helloworld)にあるのを確認して、HTTPサーバーを起動します。
そして、

http://localhost:3000/コントローラクラス名/コントローラクラスで定義した文字列/

にアクセスします。このサンプルでは、

http://localhost:3000/hello/index/

となります。

こんちにわ、世界!

表示されましたか???