Ruby/Rubyの基礎知識

RailsでTwitterクローンを作る(1) -- Scaffoldでひな形を生成(3ページ目)

何回かに分けて、Railsで少し実践的なアプリケーションを制作する流れを説明していきます。今回はRailsのScaffold機能を使い、アプリケーションのひな形を生成します。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

Rails MVC & ルーティング

前のページでデータベースを更新したので、Postに関係するページが利用できるようになっています。

scaffold実行時にconfig/routes.rbファイルにresources :postsの1行が追加されており、

この1行だけでRESTfulなルーティングが用意されます。bundle exec rake routesコマンドを使って現在のルーティングを確認してみましょう。

この出力は、http://localhost:3000/postsにアクセスするとPostsControllerのindexアクションがリクエストを処理し、http://localhost:3000/postsにPOSTリクエストを送るとPostsControllerのcreateアクションに処理が渡される、という対応付けを示しています。実際にhttp://localhost:3000/postsにアクセスしてみると次のようなページが見えると思います。


 
posts

posts

アクションはController内にメソッド定義の形で記述されています。たとえばPostsControllerのindexアクションは以下の通りです。

そしてindexアクションの結果は、app/views/posts/index.html.erbファイルに渡され、ユーザの目に見えるHTMLを生成します。.htmlの後に.erbがついていて奇妙に感じたかもしれませんが、これはERBと呼ばれ、通常のHTMLの中に<% %><%= %>のような形でRubyコードを埋め込めるテンプレートエンジンです。

PostsController#indexで定義された@postsインスタンス変数を受け取り、index.html.erbの中でeachを回しているのがわかります。何かデータを入れてみましょう。New Postをクリックすると次のような投稿画面に移動します。


 
newpost2

newpost2

適当な文字を入れてCreate Postボタンを押す手順を何度か繰り返すと、先ほど何もなかった/posts画面にデータが表示されました。


 
posts2

posts2

デザインは無いに等しく、このまま「完成形」として人前に出せるものではありませんが、コードを1行も書かずに「一覧表示」「投稿フォーム」「変更/削除機能」を用意出来てしまうのがscaffoldの面白いところです。Railsを学習し始めたばかりの人はまずscaffoldでテンプレートを生成し、それをいじりながら仕組みを覚えていくのがオススメです。

ここまでで、scaffoldとRailsのコードの流れをひとめぐりできました。 次回からはコードに手を入れてTwitter(のようなもの)の作成を続けて行こうと思います。

【編集部おすすめの購入サイト】
楽天市場で Ruby 関連の書籍を見るAmazon で Ruby 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます