Rails 2.0とFlex 3 beta3でRESTfulなBookmarkアプリを作ろう 1

昨日、Rails勉強会@東京第25回に参加してきました。 「TrackBackを送るまでが勉強会です。」ということなので、なんか記事を書きましょう。

RubyやRailsは初心者ですが、Flexは割とできるのでRails+Flexで簡単なサンプルアプリを作ろうと思います。

今日は、ブラウザでXMLを表示するとこまでやりましょう。

使うもの

  • サーバサイド: Rails 2.0.1
  • DB: sqlite3
  • IO: REST
  • クライアントサイド: Flex 3 beta3

準備

>gem install rails
>gem install sqlite3-ruby

とかやればいいでしょう。

Railsアプリをコマンドラインで作成

D:\rails>rails -d sqlite3 rails2restful
      create
      create  app/controllers
      create  app/helpers
      create  app/models
      create  app/views/layouts
      create  config/environments
      create  config/initializers
      create  db
      create  doc
      create  lib
      create  lib/tasks
      create  log
      create  public/images
      create  public/javascripts
      create  public/stylesheets
      create  script/performance
      create  script/process
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/mocks/development
      create  test/mocks/test
      create  test/unit
      create  vendor
      create  vendor/plugins
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  Rakefile
      create  README
      create  app/controllers/application.rb
      create  app/helpers/application_helper.rb
      create  test/test_helper.rb
      create  config/database.yml
      create  config/routes.rb
      create  public/.htaccess
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/boot.rb
      create  config/environment.rb
      create  config/environments/production.rb
      create  config/environments/development.rb
      create  config/environments/test.rb
      create  script/about
      create  script/console
      create  script/destroy
      create  script/generate
      create  script/performance/benchmarker
      create  script/performance/profiler
      create  script/performance/request
      create  script/process/reaper
      create  script/process/spawner
      create  script/process/inspector
      create  script/runner
      create  script/server
      create  script/plugin
      create  public/dispatch.rb
      create  public/dispatch.cgi
      create  public/dispatch.fcgi
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/index.html
      create  public/favicon.ico
      create  public/robots.txt
      create  public/images/rails.png
      create  public/javascripts/prototype.js
      create  public/javascripts/effects.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/controls.js
      create  public/javascripts/application.js
      create  doc/README_FOR_APP
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log

D:\rails>cd rails2restful

D:\rails\rails2restful>rake db:create
(in D:/rails/rails2restful)
"db/development.sqlite3 already exists"

D:\rails\rails2restful>ruby script\generate scaffold bookmark name:string url:st
ring
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/bookmarks
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      create  app/views/bookmarks/index.html.erb
      create  app/views/bookmarks/show.html.erb
      create  app/views/bookmarks/new.html.erb
      create  app/views/bookmarks/edit.html.erb
      create  app/views/layouts/bookmarks.html.erb
      create  public/stylesheets/scaffold.css
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/bookmark.rb
      create    test/unit/bookmark_test.rb
      create    test/fixtures/bookmarks.yml
      create    db/migrate
      create    db/migrate/001_create_bookmarks.rb
      create  app/controllers/bookmarks_controller.rb
      create  test/functional/bookmarks_controller_test.rb
      create  app/helpers/bookmarks_helper.rb
       route  map.resources :bookmarks

D:\rails\rails2restful>rake db:migrate
(in D:/rails/rails2restful)
== 1 CreateBookmarks: migrating ===============================================
-- create_table(:bookmarks)
   -> 0.0620s
== 1 CreateBookmarks: migrated (0.0620s) ======================================

実行したコマンドだけまとめると

>rails -d sqlite3 rails2restful
>cd rails2restful
>rake db:create
>ruby script\generate scaffold bookmark name:string url:string
>rake db:migrate

サーバ起動

D:\rails\rails2restful>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-12-17 03:37:04] INFO  WEBrick 1.3.1
[2007-12-17 03:37:04] INFO  ruby 1.8.6 (2007-03-13) [i386-mswin32]
[2007-12-17 03:37:04] INFO  WEBrick::HTTPServer#start: pid=2364 port=3000

ブラウザで動作確認

http://localhost:3000/bookmarks/を開く

画面キャプチャ

Bookmarkを追加してみる

画面キャプチャ

RESTで見る

http://localhost:3000/bookmarks.xmlを開く

画面キャプチャ

<?xml version="1.0" encoding="UTF-8"?>
<bookmarks type="array">

  <bookmark>
    <created-at type="datetime">2007-12-17T06:41:23+09:00</created-at>
    <id type="integer">1</id>
    <name>REDHANDS</name>

    <updated-at type="datetime">2007-12-17T06:41:23+09:00</updated-at>
    <url>http://redhands.jp/</url>
  </bookmark>
  <bookmark>
    <created-at type="datetime">2007-12-17T06:41:45+09:00</created-at>

    <id type="integer">2</id>
    <name>&#26481;&#24613;&#12495;&#12531;&#12474;</name>
    <updated-at type="datetime">2007-12-17T06:41:45+09:00</updated-at>

    <url>http://www.tokyu-hands.co.jp/</url>
  </bookmark>
</bookmarks>

よしよし。

では http://localhost:3000/bookmarks/1.xmlを開くと

<?xml version="1.0" encoding="UTF-8"?>
<bookmark>
  <created-at type="datetime">2007-12-17T06:41:23+09:00</created-at>
  <id type="integer">1</id>
  <name>REDHANDS</name>

  <updated-at type="datetime">2007-12-17T06:41:23+09:00</updated-at>
  <url>http://redhands.jp/</url>
</bookmark>

なるほど。ルートノードがbookmarkになるわけですな。

ここまでコードを書かずにコマンドライン5行の実行だけでアプリになるRailsはすばらしいですね。

つづく

カテゴリ

,

トラックバック(1)

このブログ記事を参照しているブログ一覧: Rails 2.0とFlex 3 beta3でRESTfulなBookmarkアプリを作ろう 1

このブログ記事に対するトラックバックURL: http://uenon.jp/mt/mt-tb.cgi/91

前回の続きで、今回はクライアントサイドのFlexの実装をしましょう。 ... 続きを読む

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、Naohiko Uenoが2007年12月17日 07:03に書いたブログ記事です。

ひとつ前のブログ記事は「REDHANDS「無料体験キャンペーン for Flash系開発会社」」です。

次のブログ記事は「Rails 2.0とFlex 3 beta3でRESTfulなBookmarkアプリを作ろう 2」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0