Instant Rails ActiveRecord を利用する その2
ActiveRecord とは
Rails では、MVCのM(モデル)を扱うために ActiveRecord というパッケージを利用する
データベースのテーブルやビューを意識することなく簡単にデータアクセスできる
これにより、開発者はビジネスロジックのプログラミングに専念できる
ActiveRecord はデータベース製品の違いを吸収する仕組みを持っている
このため、データベース変更に伴うソースコードの変更は局所に抑える事が出来る
ActiveRecord を使う
Rails で ActiveRecord を使うということは、モデルを生成し操作するということ
コマンドラインから、スクリプトを利用してモデルを生成する
実際にテーブルを作成し、それに対するモデルを作成する
phpMyAdmin を利用して、データベースを作成する
そして、SQL文を phpMyAdmin で実行し、userテーブルを作成する
create table users (
id int not null auto_increment,
name varchar(20) not null,
profile varchar(80) not null,
primary key (id));
ここで、config\database.yml を確認
development:
adapter: mysql
database: testActiveRecord_development
username: root
password:
host: localhost
OKそうなので、userモデルを作成
rails_apps\testActiveRecord>ruby script\generate model user
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/user.rb
create test/unit/user_test.rb
create test/fixtures/users.yml
create db/migrate
create db/migrate/001_create_users.rb
生成された直後の app\models\user.rb の内容
class User < ActiveRecord::Base
end
テストクラスを使って ActiveRecord クラスを動かす
テスト環境を確認すると \test\unit\user_test.rb がある
「\test\unit\user_test.rb」
require File.dirname(__FILE__) + '/../test_helper'class UserTest < Test::Unit::TestCase
fixtures :users# Replace this with your real tests.
def test_truth
assert true
end
end
実際に、このテストクラスを実行
testActiveRecord>ruby test\unit\user_test.rb
Loaded suite test/unit/user_test
Started
.
Finished in 0.953 seconds.
1 tests, 1 assertions, 0 failures, 0 errors
テスト成功!って、モデル、テストクラスも生成したままの状態なので
これでテストクラスを使うことができる状態にあることが確認できた