うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

Railsのあれこれ その2

メールアドレスのバリデーション(重複なし)

メールアドレスは被らないようにするため、バリデーションを使います。

validates :email, {presence: true, uniqueness: true}

Userモデルでこのようにバリデーションを定義します。

また、ユーザー名は

validates :name, { presence: true }

このような感じで良いでしょう。


Herokuの残り時間

Herokuの無料プランの残り時間を確かめるためには

コマンドライン

heroku ps 

と打ちましょう。

Free dyno hours quota remaining this month: 660h 40m (66%)

という感じで残りの時間とパーセントが表示されます。


Showアクション(詳細ページ)

詳細ページは

まずルーティングを作ります。

showのルーティングは

  get "posts/index" => "posts#index"
  get "posts/new" => "posts#new"

  get "posts/:id" => "posts#show"

  post "posts/create" => "posts#create"
  get "posts/:id/edit" => "posts#edit"
  post "posts/:id/update" => "posts#update"
  post "posts/:id/destroy" => "posts#destroy"

このような順番になることに注意して下さい。 (get "posts/index" => "posts#index"よりも下に書く)

次にアクションを記述します。

def show
@post = Post.find_by( id: params[:id])
end

のようにしてコントローラーにshowアクションを作ります。

ビューには

show.html.erb というファイルに

  <div class="container">
    <h2><%= @post.content %></h2>
    <p><%= @post.updated_at %></p>
  </div>

例えばこのようにして、表示させたいテーブルを表示させるようにすればOKです。

また、indexページ(一覧ページ)にリンクで

<% @posts.each do |post| %>
<%= link_to( post.content , "/posts/#{post.id}" ) %>
<% end %>

このように、showページ(個別ページ)に飛ぶようにリンクを設定します。

コントローラーは

コマンドライン

rails g controller users index

などと書いて 「users」「posts」コントローラーのように複数形でコントローラーを作り、 (PostsController、UsersControllerなど)

モデルを呼ぶ時は

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

このように単数形で呼ぶことに注意しましょう。