Rails Tutorialをやってみよう06

第5章の続きからやっていきます。
第5章 レイアウトを作成する | Rails チュートリアル

5.4 ユーザー登録: 最初のステップ
1番目は、static_pages_controllerをgenerateコマンドにて作成しました。
参考:第3章

$ rails generate controller Users new

第3章 ほぼ静的なページの作成 | Rails チュートリアル

次は、2番目のコントローラであるUsersコントローラを作成しましょう。

$ rails generate controller Users new

   create  app/controllers/users_controller.rb
      route  get 'users/new'
      invoke  erb
      create    app/views/users
      create    app/views/users/new.html.erb
      invoke  test_unit
      create    test/controllers/users_controller_test.rb
      invoke  helper
      create    app/helpers/users_helper.rb
      invoke    test_unit
      create      test/helpers/users_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/users.js.coffee
      invoke    scss
      create      app/assets/stylesheets/users.css.scss

ユーザー登録ページを持つ、コントローラをgenerateコマンドにて作成します。
ユーザー登録用のアクション名は、「new」としておきます。


ここで、rails generateコマンドの引数は、大文字且つ複数形で入力していることに注意です。

5.4.2 ユーザー登録用URL
新規ユーザー用の動作するページが/users/new にできました。
URLは/users/newではなく表のとおりに/signupに変更しておきます。

routes.rbファイルの

get 'users/new'

を以下のように修正します。

 get 'signup'  => 'users#new'

この意味は、もし URL/signupにアクセスがあったら、
userのアクションnewを呼び出せ、ということです。

トップページにあるsing up now!のリンクを結びつけます。
f:id:mi813:20151116130755p:plain

app/views/static_pages/home.html.erbの'#'を以下のように編集しましょう。

Rails.application.routes.draw do
  root             'static_pages#home'
  get 'help'    => 'static_pages#help'
  get 'about'   => 'static_pages#about'
  get 'contact' => 'static_pages#contact'
  get 'signup'  => 'users#new'
end

signt up now!をブラウザで押すと
f:id:mi813:20151116191454p:plain
うまく表示することができたと思います。

最初のユーザー登録ページを作成します。
app/views/users/new.html.erbの内容を編集します。

<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>
<p>This will be a signup page for new users.</p>

ブラウザで確認します。
f:id:mi813:20151116191759p:plain

うまく<% provide(:title, 'Sign up' %>が反映されていると思います。

5.5 最後に
Gitを使っている方は、この時点でmasterブランチに変更をマージしてください。

$ bundle exec rake test
$ git add -A
$ git commit -m "Finish layout and routes"
$ git checkout master
$ git merge filling-in-layout

続いて、Bitbucketにプッシュします。

$ git push

herokuへデプロイします。

$ git push heroku

herokuへデプロイされているかを確認します。

$ heroku open

次回へ続きます。