バナー配信システムを作る(1)

詳しくはあとでまとめる。続くかどうかはわからない

ユースケース

  • ユーザ登録ができる
  • キャンペーンが登録できる
  • キャンペーンにバナーが登録できる
  • バナー貼り付け用のコードが取得できる
  • バナーのインプレッション数、クリック数が取得できる

ER図


とりあえずはじめる

それがRails

プロジェクトの作成

D:\public_html>rails new opt
      create
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/views/layouts/application.html.erb
      create  app/mailers
      create  app/models
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  log
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  public/images
      create  public/images/rails.png
      create  public/stylesheets
      create  public/stylesheets/.gitkeep
      create  public/javascripts
      create  public/javascripts/application.js
      create  public/javascripts/controls.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/effects.js
      create  public/javascripts/prototype.js
      create  public/javascripts/rails.js
      create  script
      create  script/rails
      create  test
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/unit
      create  tmp
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  vendor/plugins
      create  vendor/plugins/.gitkeep

キャンペーンのCRUDを作る

本当はユーザ管理を先につくりたいけど、先に動くようにするのがアジャイル(多分違う)

D:\public_html>cd opt

D:\public_html\opt>rails generate campaign name:string
Could not find generator campaign.

D:\public_html\opt>rails g scaffold campaign name:string
      invoke  active_record
      create    db/migrate/20100915002636_create_campaigns.rb
      create    app/models/campaign.rb
      invoke    test_unit
      create      test/unit/campaign_test.rb
      create      test/fixtures/campaigns.yml
       route  resources :campaigns
      invoke  scaffold_controller
      create    app/controllers/campaigns_controller.rb
      invoke    erb
      create      app/views/campaigns
      create      app/views/campaigns/index.html.erb
      create      app/views/campaigns/edit.html.erb
      create      app/views/campaigns/show.html.erb
      create      app/views/campaigns/new.html.erb
      create      app/views/campaigns/_form.html.erb
      invoke    test_unit
      create      test/functional/campaigns_controller_test.rb
      invoke    helper
      create      app/helpers/campaigns_helper.rb
      invoke      test_unit
      create        test/unit/helpers/campaigns_helper_test.rb
      invoke  stylesheets
      create    public/stylesheets/scaffold.css

テーブルを作成

D:\public_html\opt>rake db:migrate
(in D:/public_html/opt)
==  CreateCampaigns: migrating ================================================
-- create_table(:campaigns)
   -> 0.0000s
==  CreateCampaigns: migrated (0.0000s) =======================================

動作を確認

D:\public_html\opt>rails server
=> Booting WEBrick
=> Rails 3.0.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

http://localhost:3000/campaigns/


やった。

登録とかもきちんとできる。