�uActiveRecord�v�̊�{�ƃf�[�^�̎Q���FRuby on Rails3�Ŋw��Web�J���̃L�z���i3�j�i1/2 �y�[�W�j

�����Rails�̍ł��d�v�ȃ��C�u������1�AActiveRecord�ɂ‚��āA��{�I�Ȏg���������Љ�܂��B

» 2011�N04��12�� 00��00�� ���J
[���J�q, �͖�\�s, ������C������Ж��t]

�@�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�Ƃ�

�@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

  • 1�‚̃N���X�� ��{�I��DB��1�e�[�u���ɑΉ����܂��B�N���X�̑����iattribute�j�́A�e�[�u���̊e�J�����ɑΉ����܂��B
  • ���̎�̃N���X�́AActiveRecord::Base�̔h���N���X�Ƃ��Ď������Aapp/models�z���Ɋi�[���܂��BRails�ł́u���f���v�Ƃ�����́A�����I�ɂ͂����̃N���X�̂��Ƃ��w�����Ƃ������Ƃ����܂��B
  • ���f���N���X��1�C���X�^���X�i�I�u�W�F�N�g�j���A�f�[�^�x�[�X��1���R�[�h�ɑΉ����܂��B�I�u�W�F�N�g���ێ����鑮���̒l���A���R�[�h�̕ێ�����e�J�����̒l�ƑΉ����܂��B
  • ���f���N���X�ɂ́A���̃��f���̕\���f�[�^�Ɋ֘A�����h���C���ŗL�̃��W�b�N��lj��ł���̂ŁA�I�u�W�F�N�g�w���I�ȃv���O���~���O���s���܂��B

�@���̃}�b�s���O�̋�̓I�ȃC���[�W��}�ɂ���Ǝ��̂悤�ɂȂ�܂��B

ActiveRecordɂ}bsO̊Tv ActiveRecord�ɂ��}�b�s���O�̊T�v

�@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

�}�b�s���O�̎d�g��

�@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��CRUD����

�@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�^

�@�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

DB�ɕۑ��������R�[�h�̎Q��

�@�Q�Ƃɂ͗l�X�Ȃ���������܂����A�Ⴆ�Γ����id�̃��R�[�h���擾����ɂ͎��̂悤�ɂ��܂��B

user = User.find(requested_id)

�@���̂ق��ɂ��l�X�ȕ��@������܂��B�{�L���̌㔼�ł́A���낢��ȎQ�Ƃ̎d���⌟�������̎w��̕��@�Ȃǂ��ڂ���������Ă����܂��B

�ۑ��ς݂̃��R�[�h�̍X�V

�@�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

���R�[�h�̍폜

�@�폜���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�t�@�C���̍쐬

�@���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
[app/models/user.rb]

�@���̂ق��Ɂ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

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B