Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Ruby on Rails + Curl
Curl用Scaffoldを自作する

第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/07/21 15:00

ダウンロード サンプルソース (5.4 KB)

 RailsにはScaffoldという簡単なアプリを自動生成するジェネレータがありますが、Scaffoldはデフォルトで用意されているものだけでなく自作することも可能です。今回は前回作成したCRUDアプリを自動生成するScaffoldを自作します。

目次

はじめに

 実用的なWebアプリを作ると、同じような画面がたくさん必要になってきます。特にバックエンド側の管理画面は、テーブルに対するCRUD機能を少しだけ拡張したような画面がたくさん必要になります。

 このような場合にRuby on RailsのScaffold機能はとても有用です。たしかにRuby on Railsが最初から用意しているScaffoldが作るアプリでは、機能が足りなかったり冗長だったりします。しかし、RailsではScaffoldのようなコードジェネレータを簡単に自作できる仕組みを持っています。

 今回はこの機能を使って、前回作ったリッチクライアント版のCRUDアプリを作るcurl_scaffoldを作っていきます。これはテーブル定義を与えると、Scaffoldのようにアプリケーションのコードを生成するプログラムです。

これまでの記事

  1. Railsの表示にCurlを使ってRIAを構築する
  2. リッチクライアントCRUDアプリを作成する

サンプルソースについて

 こちらよりサンプルソースをダウンロードできます。なお、サンプルソース実行にあたってはライセンスファイル「curl-license-5.dat」が必要になります。Curl IDEなどに含まれていますので、コピーして使用してください。

curl_scaffoldのイメージ

 今回作るcurl_scaffoldを実行した際の流れは、次のようなイメージです。

1

 Ruby on RailsのScaffoldでアプリを作るのと同じように、まずrailsコマンドでプロジェクトを作ります。

% rails alih
% cd alih
2

 script/generateコマンドでcurl_scaffoldジェネレーターを使ってアプリケーションのひな形を生成します。その際、scaffoldと同様にモデル名、RDBテーブルのカラム情報を指定します。

% ruby script/generate curl_scaffold player name:string team:string no:integer goal:integer assist:integer
3

 rakeコマンドでDBを作成、サーバを起動します。

% rake db:migrate
% ruby script/server
4

 ブラウザで http://localhost:3000/players/start をアクセスすると前回と同じようなCurlの画面が表示されます。

 もちろん、上の手順で作ったアプリにはデータがありません。前回のplayers.ymlファイルをtest/fixturesディレクトリにコピーし、以下のコマンドを実行することで前回同様のデータが入ります。

% rake db:fixtures:load

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 吉田裕美(ヨシダユウミ)

    有限会社 EY-Office 取締役 CADのベンチャー企業でCADのコア部分や図面管理システムなどの開発に従事した後、独立しJava,Ruby,PerlでWebアプリを中心に開発してきた。現在は殆どの開発はRuby on Rails。 ここ数年はソフトウェアエンジニアの教育に興味をもち、従来の...

バックナンバー

連載:Ruby on Rails + Curl

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5