HelloWorldを表示するまでに必要な設定および知識 (Rails4)
[最終更新] (2019/06/03 00:49:53)
最近の投稿
注目の記事

1. Railsをインストール

事前にインストールしておいたRubyに付属のgemコマンドを利用して、Railsをインストールします。'-v'オプションで特定のバージョンを指定してのインストールが可能です。

$ gem install rails -v X.X.X

2. アプリケーションを作成

railsコマンドを使用してアプリケーションの雛形を生成します。

$ rails new myApp

特定バージョンのrailsを使用して作成するためには

$ rails _X.X.X_ new myApp

とします。また、既定はsqlite3ですが、例えばmysqlを使用するアプリケーションを作成するためには

$ rails new myApp --database='mysql'

とします。

3. テストページを表示

作成したアプリケーションのディレクトリ内に移動し

$ cd /path/to/myApp

railsコマンドでサーバーを起動します。

$ rails server
(or $ rails s)

オプションを指定しませんでしたので、規定の3000番ポートでテストページ (http://localhost:3000/) にアクセスできます。なお、'-p 8080'とするとポートを指定できます。その他のオプションとして、例えば'-e production'とすれば生成されたアプリケーションの設定のうちproductionのものを使用してサーバーが起動します。省略時にはdevelopmentの設定が使用されます。

4. コントローラを作成

railsコマンドを使用してコントローラファイルの雛形を自動生成します。

$ rails generate controller main
(or $ rails g controller main)

間違って作成したコントローラのファイル群は

$ rails destroy controller main

とすれば削除できます。コントローラファイルを編集してアクションメソッドを追記しましょう。

app/controllers/main_controller.rb (utf-8で保存してください)

# coding: utf-8
# ↑ruby2.0以降であれば、規定がutf-8であるため省略可能

class MainController < ApplicationController
  def index
    render text: 'こんにちはー' # printデバッグで便利。View要らずです。
  end
end

簡易ルーティング設定を行います。

config/routes.rb

MyApp::Application.routes.draw do

  match ':controller(/:action(/:id))', via: [ :get, :post, :patch ]
  # match → このパターンにマッチするURLでのアクセスを処理
  # () → 省略可能であることを示す
end

アクセスしてみましょう → http://localhost:3000/main/index

5. ビューを作成

app/views/main/myView.html.erb

<div>
  <%# 値を返す %>
  <%= @val %>
  <br />

  <%# 処理を実行するだけ %>
  <% @val = 256 %>
  <%= @val %>
  <br />

  <%# 値を返す(後方のスペースや改行を除去) %>
  <%= @val -%>
  <br />

  <%# HTMLエスケープしない (XSSに注意) %>
  <% str = '&' %>
  <%== str %>

  <%# XSS対策のサニタイジング (許可したタグと属性以外は取り除く) %>
  <% str2 = '<div><p><a id="id" href="url">リンクテキスト</a></p></div>' %>
  <%= sanitize str2, tags: %w(a div), attributes: %w(href) %>

  <%# デバッグ時に重宝 %>
  <%= debug(@val) %>

  <!-- その他のコメント方法 -->
  <% @val = 512
     # これはコメントです
     p @val %>

<%
=begin
%>

  <% @val = 'これもコメントです' %>

<%
=end
%>
</div>

app/controllers/main_controller.rb

# coding: utf-8
# ↑ruby2.0以降であれば、規定がutf-8であるため省略可能

class MainController < ApplicationController
  def index
    render text: 'こんにちはー' # printデバッグで便利。View要らずです。
  end

  def myView
    @val = 128
  end
end

アクセスしてみましょう → http://localhost:3000/main/myView

静的なページを作成する場合、アクションメソッドが不要であれば省略可能です。

app/views/main/staticView.html.erb

<p>静的なページです。<p/>

アクセスしてみましょう → http://localhost:3000/main/staticView

また、ヘッダおよびフッタなどのレイアウトは app/views/layouts/application.html.erb で編集可能です。

6. モデルを作成

railsコマンドを使用して、モデルファイルの雛形を自動生成しましょう。

$ rails generate model myModel field1:string field2:integer field3:date field4:boolean
(単数形とする。myModelsはダメです)

その後、config/database.ymlに設定のあるデータベースにモデルファイルと同じ構造のテーブルを作成するために、Railsに付属のrakeコマンドを使用して

$ rake db:migrate

を実行しましょう。すると、先程モデルファイルと一緒に生成された db/migrate/20140601095337_create_my_models.rb を利用してデータベースが更新されます (誤って作成した場合などは "rake db:drop" または "rake db:drop:all" で削除できます。誤ってUPDATEなどした場合は "rake db:reset" で初期化できます)。実際に更新されたことを確認するために、クライアントを立ち上げてみましょう。

$ rails dbconsole
(or $ rails db)

SQLite3の場合、下記のようなコマンドが実行できます。

  • .tables → テーブル一覧を表示
  • .schema tablename → 指定したテーブルの構造を表示
  • SELECT * FROM tablename → お馴染のSQLクエリ
  • .quit → 終了

このモデルを使用して簡易表示ページを作成してみましょう。

app/controllers/main_controller.rb

# coding: utf-8
# ↑ruby2.0以降であれば、規定がutf-8であるため省略可能

class MainController < ApplicationController
  def index
    render text: 'こんにちはー' # printデバッグで便利。View要らずです。
  end

  def myView
    @val = 128
  end

  def show
    @myModels = MyModel.all # SELECT * FROM my_models
  end
end

app/views/main/show.html.erb

<% @myModels.each do |myModel| %>
<%= myModel.id %><br />
<% end %>

アクセスしてみましょう → http://localhost:3000/main/show

アクセス時に発行されたSQL文は、rails server を実行したコンソール (コマンドプロンプト等) に

Processing by MainController#show as HTML
  MyModel Load (0.0ms)  SELECT "my_models".* FROM "my_models"

のように表示されます。

7. その他、知っていると便利な知識

この続きが気になる方は

HelloWorldを表示するまでに必要な設定および知識 (Rails4)

残り文字数は全体の約 23 %
tybot
100 円
関連ページ
    概要 Rails4には他のフレームワーク同様、CRUD (Create, Read, Update, Delete) を行うアプリケーションの骨組みとなるファイル一式を自動で出力するScaffolding機能があります。 事前準備 rails new myApp としてアプリケーションを作成しておきます。そうではなく、既存のアプリケーションを利用する場合でかつ下記Scaffolding機
    概要 Android におけるデータ保存の方法は主に三つ用意されています。それぞれの利用方法をまとめます。 関連する公式ドキュメント Training / Saving Data Key-Value Sets Files SQL Databases API Guides / Storage Options
    概要 React は、当時のバージョン 1 についてこちらのページ等で利用方法をまとめた Angular と比較されることの多い、UI 構築のための JavaScript ライブラリです。Angular と異なり、ES6 や JSX の構文が利用された JavaScript コードをブラウザが解釈可能な JavaScript にコンパイルする