�����Rails�̍ł��d�v�ȃ��C�u������1�AActiveRecord�ɂ��āA��{�I�Ȏg���������Љ�܂��B
�@�O��܂ł�Ruby on Rails�̑S�̑��ɂ��Č��Ă��܂����B����́ARails���\������e���i�ɂ��ďڂ���������Ă����܂��B�܂��́ARails�̃��f���w�̕W���I�ȃ��C�u�����ł���uActiveRecord�v�ɏœ_�Ă܂��B�Ƃ͂����AActiveRecord�̒���@�\�͖c��Ȃ̂ŁA����ɕ����ĉ�����邱�Ƃɂ��܂��B����́AActiveRecord�̊�{�I�ȍl������A�g���n�߂邽�߂ɕK�v�ȃ}�C�O���[�V�����̒m���A�Q�ƌn�̑���̎d�������Љ�܂��B
�@ActiveRecord��Ruby on Rails���\������ł��d�v�ȃ��C�u������1�ŁARails�̃��f���w�ɑ������AO/R�}�b�s���O��S�����܂� �B���̃��C�u�����̖��O�́A�\�t�g�E�F�A�̐v�p�^�[���Ɋւ��钘��ȂǂŒm����Martin Fowler����2002�N�ɁuPatterns of Enterprise Application Architecture�v�i�M��F�u�G���^�[�v���C�Y �A�v���P�[�V�����A�[�L�e�N�`���p�^�[���v�j�ɂ����Ē�`�����gActive Record�h�p�^�[���ɗR�����A���g�͂��̃p�^�[���������������̂ƂȂ��Ă��܂��BMartin Fowler���̒�`�͈ȉ��̒ʂ�ł��B
�@An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.
�i�f�[�^�x�[�X�̃e�[�u����r���[�̈�s�����b�v���A�f�[�^�x�[�X�A�N�Z�X���J�v�Z�������A�f�[�^�Ƀh���C���ŗL�̃��W�b�N��������I�u�W�F�N�g�ł���j
�@ActiveRecord���C�u�������A����ɉ������̂ƂȂ��Ă���A���̂悤�Ȍ`�ƂȂ�܂��B
�@���̃}�b�s���O�̋�̓I�ȃC���[�W��}�ɂ���Ǝ��̂悤�ɂȂ�܂��B
�@ActiveRecord�̂悤��O/R�}�b�p�[���g���ƁA�I�u�W�F�N�g�w���v���O���~���O���ł���̂͂������A���f���w�̉i�����̃R�[�h����{�I�Ƀ��C�u�����C���ɂł���̂ŁASQL���L�q����ς킵��������邱�Ƃ��ł��܂��B����ɁA�f�[�^�x�[�X�̎�ނɂ��SQL�̈Ⴂ�����C�u�������z�����Ă���邽�߁A�A�v���P�[�V�����R�[�h�̓���f�[�^�x�[�X�ւ̈ˑ������Ȃ����邱�Ƃ��ł��܂��B
�@ActiveRecord���f���N���X��RDB�̃e�[�u�����}�b�s���O���邽�߂ɂ́A�v���O���}�͉����s���Ηǂ��̂ł��傤���H�@���́AActiveRecord�ł͂��̃}�b�s���O���ǂ����ɐݒ肷�邱�ƂȂ��g�����Ƃ��ł��܂��B�܂��A�N���X�ƃe�[�u����Ή�������ɂ́A���O�Ɋւ���K���p����܂��B�Ⴆ�A�e�[�u������ users �ł���A�N���X���� User �Ƃ�����ɁA�e�[�u�����͕����`�A�N���X���͒P���`�̋K���p���܂��B�K��ʂ�̃N���X�ł́A���̂悤�ɒ��g������ۂł����Ă��������}�b�s���O���s���܂��B
class User < ActiveRecord::Base end
�@�@���ɊO��閽�����K�v�ł���ꍇ�́A�N���X�ɋL�q��lj����邱�ƂőΉ��\�ł��B�Ⴆ�AUser�N���X��kaiin�e�[�u���ɕR�t����ɂ́A���f�����Ɏ��̂悤�ɋL�q���܂��B
class User < ActiveRecord::Base set_table_name :kaiin end
�@���̂悤�ɁA�K��ʂ�ł���ΐݒ肪���炸�A�K��ɊO���Ƃ������L�q����Ηǂ��A�Ƃ����̂� Ruby on Rails�̕W���I�ȃX�^�C���ł��B���̃|���V�[�́uConvention over Configuration�v�i�ݒ���K��j�Ƃ��Ēm���Ă��܂��B
�@�N���X�̑����ƃe�[�u���̃J�����̃}�b�s���O�ɂ��Ă��A�ݒ�������K�v������܂���BActiveRecord���C�u������DB�X�L�[�}�����s���ɓǂݎ��A�J�������Ɠ������O�̑������g����悤�ɁA�悫�ɂ͂�����Ă���܂��B���̍ۂ́A�J�����̃f�[�^�^�ɏ]���āA�������K��Ruby�̃N���X�ւƑΉ��t�����܂��B
�@�W���ł́A�e�[�u���ɂ�id�Ƃ������O�̃v���C�}���L�[�����邱�Ƃ��K��ƂȂ�܂��B�����ł��A�Ⴄ���O��t�������ꍇ�͐ݒ���L�q����Ή\�ł��B�Ⴆ�A�v���C�}���L�[��id�ł͂Ȃ�member_code�Ƃ������O�̏ꍇ�͎��̂悤�ɏ����܂��B
class User < ActiveRecord::Base set_primary_key :member_code end
�@�Ȃ��ARails�͕�����L�[�ɂ͑Ή����Ă��܂���B�J�����ȒP�ɂ��邽�߂ɁA������L�[�͔�����̂��悢�ł��傤�B���K�V�[�f�[�^�x�[�X���g���Ƃ�����������ꍇ�́A��ӂɂȂ�v���C�}���L�[��V�����lj�����Ȃǂ��ĉ������̂��������߂ł��B
�@ActiveRecord�́A������CRUD�iCreate - �o�^�ARead - �Q�ƁAUpdate-�X�V�ADelete-�폜�j�@�\����܂��B���̂ق��A�����l�̌��A�����̊֘A���郂�f�����������߂́u�֘A�v�@�\�ȂǁA�l�X�ȕ֗��ȋ@�\������Ă��܂��B���p�I�ȋ@�\�ɂ��Ă͎���ȍ~�ɏ��邱�Ƃɂ��āA�����ł�CRUD�����̃C���[�W��͂�ł��炦��悤�A��\�I�Ȏg�������R�[�h��Ő������Ă����܂��B
�@�f�[�^�x�[�X�փ��R�[�h�̓o�^���s���ɂ́A���f���N���X�̃I�u�W�F�N�g���쐬���āAsave���s���܂��B
user = User.new(:name => �eTaro�f, :email => �etaro@everyleaf.com�f) user.save
�@��L�̗�ł́Anew�̂Ƃ��ɑ������n�b�V���œn���Ă��܂��B����́A���̂悤�ɋL�q���邱�ƂƓ����ł��Bname�Aemail�Ƃ����������́Ausers�e�[�u����name�Aemail�Ƃ����J�����������ActiveRecord�������I�Ɏg����悤�ɂ��Ă���܂��B
user = User.new user.name = �eTaro�f user.email = �etaro@everyleaf.com�f
�@�I�u�W�F�N�g��new�ō쐬�������_�ł́A�܂��f�[�^�x�[�X�ւ̓o�^�͍s���Ă��܂���Bsave�����s�����i�K�ł͂��߂ē�����SQL��INSERT���������s����܂��B
�@�Q�Ƃɂ͗l�X�Ȃ���������܂����A�Ⴆ�Γ����id�̃��R�[�h���擾����ɂ͎��̂悤�ɂ��܂��B
user = User.find(requested_id)
�@���̂ق��ɂ��l�X�ȕ��@������܂��B�{�L���̌㔼�ł́A���낢��ȎQ�Ƃ̎d���⌟�������̎w��̕��@�Ȃǂ��ڂ���������Ă����܂��B
�@�X�V����ɂ́A�܂��ΏۂƂȂ郂�f���I�u�W�F�N�g���擾���Ă���A���̑�����ύX����save���܂��B
user = User.find(requested_id)
user.name = �eJiro�f
user.save
�@�폜���s���ɂ́A�܂��ΏۂƂȂ�I�u�W�F�N�g���擾���Ă���Adestroy���\�b�h���Ăт܂��B
user = User.find(requested_id)
user.destroy
�@ActiveRecord�̊�{����́A���̂悤�ɃV���v���Œ����I�Ɉ�������̂ƂȂ��Ă��܂��B
�@���f���N���X�́AActiveRecord::Base���p�������h���N���X�Ƃ���������A��Ńt�@�C�������A�ꂩ�玩���ŏ����Ă��\���܂���B�������A�ȑO�̋L���ł��Љ���悤�ɁArails generate�R�}���h�irails g �R�}���h�j���g���A���f���N���X�Ɗ֘A����t�@�C���ꎮ�����Ă����̂ŁA�f�����J�����i�߂��܂��B
�@�Ⴆ�A���O�AEmail�A�a�����A����ԍ�������User�N���X������ɂ͎��̂悤�ɂ��܂��B
> rails g model user name:string email:string birthday:date number:integer
�@����ɂ���āA���̂悤�ȃ��f���N���X���쐬����܂��B
class User < ActiveRecord::Base end
�@���̂ق��ɁA�}�C�O���[�V�����t�@�C���ƒP�̃e�X�g�̂��߂̃t�@�C���A�P�̃e�X�g�Ŏg���f�[�^���L�q���邽�߂̃t�B�N�X�`���t�@�C������������܂��B
�@���̃��f���N���X�ɂ́A��قǂ�rails g�R�}���h�ɗ^�����J�����̏���f����Ă��܂���B����́A�O�q�̒ʂ�A�J�����Ƒ����̑Ή��t�������f���N���X��̋L�q�ɂ���Ăł͂Ȃ��A�f�[�^�x�[�X�X�L�[�}�o�R�ōs���邽�߂ł��B�ł́Ag�R�}���h�ɃJ��������^�����Ӗ��͂ǂ��ɂ���̂ł��傤���H
�@���́A�^�����J�������́A���f���N���X�ƂƂ��ɐ��������A�f�[�^�x�[�X�X�L�[�}��ύX���邽�߂̃}�C�O���[�V�����t�@�C����e�X�g�n�̃t�@�C���ŗ��p����܂��BActiveRecord�𗝉�����ɂ́A���̃f�[�^�x�[�X�X�L�[�}������S������}�C�O���[�V�����̗������������܂���B�����ŁA�����ă}�C�O���[�V�����ɂ��ĉ�����Ă����܂��B
Copyright © ITmedia, Inc. All Rights Reserved.