scaffold-03再度まとめ

aptanaでNewprojectとして作成する。
mysqlへログインする。

$mysql5 -u root
mysql> show databases;

/lib/tasks/base.rakeを下記の内容にて作成する。

env = ENV['RAILS_ENV'] || 'development'
database = "chap_#{env}"

task :connect_db => [:environment] do
  ActiveRecord::Base.establish_connection(
    :adapter => 'mysql',
    :host => 'localhost',
    :username => 'root',
    :database => 'mysql',
    :socket => '/opt/local/var/run/mysql5/mysqld.sock'
   )
end

task :setup_db => [:connect_db] do
  ActiveRecord::Schema.define do
    create_database database
  end
end

task :destroy_db => [:connect_db] do
  ActiveRecord::Schema.define do
    drop_database database
  end
end

データベースを作成する。

$ rake setup_db
(in /Users/monote/dev/rails/chap0425)
-- create_database("chap_development")
   -> 0.0453s
monote$ 

モデルを作成する。

$ ruby script/generate model member

データベースの要素を作成する。

/db/migrate/001_create_members.rb

class CreateMembers < ActiveRecord::Migration
  def self.up
    create_table :members do |t|
      t.column :text, :string
      t.column :create_at, :datetime      
    end
  end

  def self.down
    drop_table :members
  end
end

テーブル/項目作成。

$ rake db:migrate
(in /Users/monote/dev/rails/chap0425)
== CreateMembers: migrating ===================================================
-- create_table(:members)
   -> 0.0027s
== CreateMembers: migrated (0.0030s) ==========================================

スキャッフォールド作成。

$ ruby script/generate scaffold Member main
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/main
      exists  app/views/layouts/
      exists  test/functional/
  dependency  model
:0:Warning: Gem::SourceIndex#search support for Regexp patterns is deprecated
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
   identical    app/models/member.rb
   identical    test/unit/member_test.rb
   identical    test/fixtures/members.yml
      create  app/views/main/_form.rhtml
      create  app/views/main/list.rhtml
      create  app/views/main/show.rhtml
      create  app/views/main/new.rhtml
      create  app/views/main/edit.rhtml
      create  app/controllers/main_controller.rb
      create  test/functional/main_controller_test.rb
      create  app/helpers/main_helper.rb
      create  app/views/layouts/main.rhtml
      create  public/stylesheets/scaffold.css

これで完成。
エラーが表示されるようだったら、再起動。