LoginSignup
0
0

More than 3 years have passed since last update.

Railsチュートリアル(第3章)

Posted at

はじめに

Railsチュートリアルの第3章が終わりました。
ポイントだけメモしておきます。

コントローラーの作成

rails generateコマンドでコントローラーを作成します。
アクション名はスペース区切りで複数作成できます。
※私はDocker上で動かしているので、先頭にdocker-compose run webをつけています。

$ rails generate controller "コントローラー名" "アクション名"

rails generateの部分はrails gと省略して記述できます。
また、コントローラー名はキャメルケースで記述します。そうすると、自動でスネークケースでコントローラーのファイルを作成してくれます。
(例:StaticPages → static_pages_controller)

また、自動生成したコントローラーを削除したい場合は、generateの部分をdestroyに書き換えて実行します。

ページ表示の簡単な流れ

URLにアクセスすると、まずconfig/routes.rbファイルを元にコントローラーとアクションを決定します。
例えば、以下はGETでstatic_pages/homeというURLにアクセスした際のルートを定義しています。

config/routes.rb
get 'static_pages/home'

次に、ルートを元にコントローラーにアクセスします。
static_pages/homeであれば、static_pages_controllerhomeアクションにアクセスします。
以下のアクションに記述された処理を実行します。

app/controllers/static_pages_controller.rb
  def home
  end

その後、app/view/"コントローラー名"/"アクション名".html.erbの内容をviewとして表示します。
static_pages/homeであれば、app/view/static_pages/home.html.erbです。

テスト

テストは、コントローラーのテストあれば、test/controllers配下にあります。
例えば、以下であれば、GETでhomeにアクセスして、成功するかというテストです。

static_pages_controller_test.rb
  test "should get home" do
    get static_pages_home_url
    assert_response :success
  end

以下のコマンドで、テストを実行します。

$ rails test

Rubyの埋め込み

erbファイルにはRubyのコードを埋め込むことができます。
<% 〜 %>では括弧内の処理を実行するだけで、<%= 〜 %>では括弧内の処理の実行結果を挿入します。

また、app/views/layouts/application.html.erbが全体の共通テンプレートのようなもので、そのbodyタグ内の<%= yield %>の部分に、view配下のerbファイルが展開されるイメージです。

app/views/layouts/application.html.erb
  <body>
    <%= yield %>
  </body>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0