SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Ruby on Rails + Curl(PR)

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

第3回

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

ダウンロード サンプルソース (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

次のページ
Ruby on RailsのScaffoldの仕組み

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Ruby on Rails + Curl連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4167 2009/07/21 15:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング