6.3 Viewing Users

昨晩の続きに着手。へろへろなので早めに何とかしたい。しかも明日は朝練の日なのですぐに続き、ってことになるのかな。

とりあえず

  • パスワードの入力は次の章らしい
  • なんか REST という字が見えるな

最初にデバッグな実装云々な話な模様。app/views/layouts/application.html.erb の footer を render する直下に追加らしい。

      <%= render 'layouts/footer' %>
      <%= debug(params) if Rails.env.development? %>

6.3.2 User model, view, controller

なんとなく将棋とか名古屋とか気になりつつ。とりあえず上記の動作を確認してみます。以下でサーバを起動して

$ rails server --environment development

で、localhost:3000 にブラウザでアクセスしてみると

---
controller: pages
action: home

が出ました。とりあえずデータを入れれ、とあるので以下をナニ。

$ rails console
Loading development environment (Rails 3.0.9)
ruby-1.9.2-p180 :001 > User.create!(:name => "Michael Hartl", :email => "mhartl@example.com")
 => #<User id: 1, name: "Michael Hartl", email: "mhartl@example.com", created_at: "2011-09-20 12:22:58", updated_at: "2011-09-20 12:22:58"> 
ruby-1.9.2-p180 :002 > exit
$

で、app/views/users/show.html.erb を作れとのこと。中身は以下らしい。

<%= @user.name %>, <%= @user.email %>

それに伴って users_controller にも show を追加か。

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
  end

で、"/users/1" な URL にアクセスしてみると RoutingError が出ます。

We can get the REST-style Users URL to work by adding users as a resource to config/routes.rb

とのことで config/routes.rb に以下をとのこと。

SampleApp::Application.routes.draw do
#  get "users/new"
  resources :users

  match '/signup',  :to => 'users#new'

これで "/users/1" な URI にアクセスできます。resources か。先に怪しい気がしてたのでコメントアウトしてたけど、いっちゃん上の get はコメントアウトで正解だった模様。

とりあえず

この時点で commit しとけ、とあります。

$ git add .
$ git commit -m "Finished first cut of the User model"

6.5 Exercises

以下、対応できれば、と思ってますがどうなるか。

  1. Read through the Rails API entry for ActiveRecord::Base to get a sense of its capabilities.
  2. Study the entry in the Rails API for the validates method to learn more about its capabilities and options.
  3. Spend a couple hours playing with Rubular.

時間があれば API なドキュメントを見てみたいかも。そして Rubular って何だろ。