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を追加してみる
- REDHANDS http://redhands.jp/
- 東急ハンズ http://www.tokyu-hands.co.jp/
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>東急ハンズ</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
» Rails 2.0とFlex 3 beta3でRESTfulなBookmarkアプリを作ろう 2(FleFla)~のトラックバック
前回の続きで、今回はクライアントサイドのFlexの実装をしましょう。 ... 続きを読む

コメントする