����Ŏg���邩���ɂ߂���Rails 4.1�̐V�@�\8�I�F�J������ł����Ǝg����Rails 4����i4�j

�G���^�[�v���C�Y�̈�ł̗̍p�������Ă���Ruby on Rails���g����Web�A�v���P�[�V��������邽�߂̓���A�ځB����́A�������Ƃ���4.1�̐V�@�\���Љ�B���f���ŗ񋓌^���ȒP�Ɉ�����Enum��V�v�����[�_�[Spring�ȂǕ֗��@�\�ɉ����A�閧���A�����t���g�[�N���ACSRF�v���e�N�V�����ȂǃZ�L�����e�B�΍�@�\���Љ�B

» 2014�N05��16�� 17��00�� ���J
[���F�ьc�A�ďC�F�R�����i�C������ЃA�W���C���E�F�A]
uJłƎgRails 4ṽCfbNX

�A�ږڎ�

�@�O��́u����f�[�^�Ɋւ���scaffold�A�N�V�����̎�������b�I�ȃ��t�@�N�^�����O��@�v�܂łŁARails��scaffold�����삷����g�݂�i�߂āA���̊�{�I�ȋ@�\�̎������I���܂����B

�@����͑����������˂āA2014�N4��8���Ƀ����[�X���ꂽRails 4.1�̐V�@�\�̒������Ȃ��̂�8�Љ�܂��B

���ҏW����

�{�A�ڂ�Ruby on Rails 4�̓���A�ڂł��BRuby�ɂ‚��Ċw�т������͘A�ځu���G���W�j�A�^���S�҂̂��߂�Ruby 2.1�����v���������������B


�y1�zRails�̐V�����v�����[�_�[�uSpring�v

�@Spring�́urails server�v�urails console�v�urake�v�R�}���h�������Ȃ�ARails�̐V�����v�����[�_�[�ł��B����܂ŊJ���҂��lj�����K�v������܂������ARails 4.1�ŕW���ƂȂ�܂����B

�@Spring���g���ɂ́A�ȉ��̃R�}���h��spring�����s���邽�߂̐ݒ�����܂��B

bundle exec spring binstub --all

�@���̌�A�R�}���h�̑O��spring��t���Ď��s����ƁA�����Ɍ��ʂ�������悤�ɂȂ�܂��B�ȉ��̃R�}���h�Ō��ݎ��s����Ă���spring�̏�Ԃ��m�F�ł��܂��B

bundle exec rake -T
bundle exec spring status

�y2�z�[�����ƂɃe���v���[�g���g����������uVariants�v

�@Variants�͓���̒[���ȂǂɌ����ĈقȂ�e���v���[�g���g����悤�ɂ��܂��B

�@�g�����̓A�N�V�����̎��s�O�t�B���^�[�����̂悤�ɒ�`���܂��B

before_action :ios_variant
  
private
  
def ios_variant
  request.variant = :ios if request.user_agent =~ /iPad|iPhone/
end

�@���̂悤��variant���ݒ肳���ƁA�A�N�V�����Ń����_�����O�����r���[�Ɂuapp/views/books/index.html+ios.erb�v�ȂǁA�t�@�C�����̃t�H�[�}�b�g����variant��NjL�������̂�����΁AiOS����̃A�N�Z�X�ł͂����炪�I������܂��B

�y3�z���f���ŗ񋓌^���ȒP�Ɉ�����uEnum�v

�@Enum�̓��f���ŗ񋓌^���ȒP�Ɉ�����悤�ɂ��܂��B

def Task < ActiveRecord::Base
  enum status: {pending: 0, wip: 1, done: 2}
end

�@�����^�ŗp�ӂ����J�����i��L�R�[�h��ł́ustatus�v�j�ɑ΂��āA���f�����ŏ�L�R�[�h��̂悤�ɐ錾���邱�ƂŎg�p�ł��܂��B����ɂ��A���f���I�u�W�F�N�g�Ŏ��ʎq�̕�����i�܂��̓V���{���j�̑����Q�ƁA���̎��ʎq�ł��邩�̐^�U�l�����߂郁�\�b�h���g����悤�ɂȂ�܂��B

task.status = :wip
task.status # => "wip"
task.wip?   # => true
task.done?  # => false

�@�f�[�^�x�[�X���̎��ۂ̒l�́A�錾���̎��ʎq���L�[�Ƃ���n�b�V���̊e�l�ɂȂ�܂����A�n�b�V���ł͂Ȃ����ʎq�̕�����i�܂��̓V���{���j�̔z��ł��悭�A���̏ꍇ�͔z��̓Y�����f�[�^�x�[�X�ɕۑ�����܂��B

�@���Ȃ݂ɁA�錾�ɂȂ����ʎq��������ꂽ�ꍇ�̓G���[�ƂȂ�A���ʎq�ɊY�����Ȃ��l�������Ă����ꍇ��nil���Ԃ�悤�ɂȂ��Ă��܂��B

�y4�z���[���̑��M���e�̃v���r���[�m�F���ł���uMailer Preview�v

�@Mailer Preview��Rails�̃��[���@�\�ɂ����āA����܂Ŋm�F���ɂ����������M���e�̊m�F�@�\�ł��B

�@���̃R�}���h�Ń��[���@�\�̃R���|�[�l���g����������܂��B

rails g mailer news

�@�������ꂽ�R���|�[�l���g�̒��́uapp/mailers/news.rb�v�Ɉȉ��̂悤��daily���\�b�h��lj����܂��B

class News < ActionMailer::Base
  default from: "[email protected]"
  def daily(datetime)
    @delivered_at = datetime
    mail to: "[email protected]"
  end
end

�@�����āuapp/views/news/daily.text.erb�v�t�@�C�����ȉ��̂悤�ȓ��e�ō��܂��B

Rails�f�C���[�j���[�X
�z�M:<%= @delivered_at %>

�@�]���̃��[���@�\�͂����܂łŁA�m�F���邽�߂ɂ͎��ۂɑ��M���Ă݂�K�v������܂����B�������A4.1����́utest/mailers/previews/news_preview.rb�v�Ƃ����t�@�C���ňȉ��̂悤�Ƀ��[���@�\���Ăяo���܂��B

def daily_news
  News.daily(DateTime.now)
end

�@�����āA�uhttp://localhost:3000/rails/mailers/news/daily_news�v�ɃA�N�Z�X����ƃ��[���̃v���r���[���{���ł��܂��B

�y5�z�閧�����܂Ƃ߂Ă�����uconfig/secrets.yml�v

�@�A�v���P�[�V�������閧���ł���usecret_key_base�v�́uconfig/initializers/secret_token.rb�v���폜����āuconfig/secrets.yml�v�ɏꏊ���ڂ��܂����B���̃t�@�C���ɂ́A���̃T�[�r�X��API�p�̔閧�̃A�N�Z�X�L�[�Ȃǂ��܂Ƃ߂Ă����܂��B

�y6�z�����t���g�[�N���̐����ƌ��؂��ł���uMessage Verifiers�v

�@�N�b�L�[�����ς���Ă��Ȃ����̃`�F�b�N�Ȃǂ̋@�\�ŗp������Message Verifiers���g����悤�ɂȂ�܂����BMessage Verifiers�͏����t���g�[�N���̐����ƌ��؂��ł��A�Z�b�V�������g��Ȃ��V�[���Ȃǂŗ��p�ł��܂��B

remember_me_verifier = Rails.application.message_verifier(:remember_me)
signed_token = remember_me_verifier.generate(token_object)
remember_me_verifier.verify(signed_token) # => token_object

�y7�z���f�����ł��ȒP�Ƀ��W���[�����`�ł���uModule#concerning�v

�@Module#concerning��Rails 4.0���瓱�����ꂽ�uconcerns�v�f�B���N�g���ɑ΂���@�\�ł��B���f���̒�`�t�@�C����ʼn“ǐ��𑹂˂��A����ŃN���X����Ӗ��𕪗��������Ƃ��ɁA���f�����ł��ȒP�Ƀ��W���[�����`�ł��܂��B

�@�Ⴆ�΁A�ȉ��̂悤�Ƀ��f�����ŁuCD::Shelf�v���W���[�����`�ł��܂��B

class CD < ActiveRecord::Base
  concerning :Shelf do
    def latest_inventory_count
      ...
    end
  end
end

�y8�zCSRF�v���e�N�V�����̕ύX

�@Rails 4.1�����JavaScript��GET���N�G�X�g�ɑ΂��Ă�CSRF�i�N���X�T�C�g�E���N�G�X�g�E�t�H�[�W�F���j�v���e�N�V�������L���ƂȂ�܂����B����ɂ��AXMLHttp���N�G�X�g�̃e�X�g�Łuformat: :js�v��t����get���\�b�h��post���\�b�h�ł̓G���[���������邽�߁Axhr���\�b�h���g���悤�ɕύX����K�v������܂��B

# get :index, format: :js
xhr :get, :index, format: :js
# post :create, format: :js
xhr :post, :create, format: :js

�����Rails�̃o�[�W�����A�b�v�͘A�ڂŒǂ��Ă����܂�

�@Rails 4.1�ł͑����̕ύX���Ȃ���܂����B����͂܂���񂪏��Ȃ��A���W���[�ȋ@�\�����Љ�ł��܂���ł������A�A�ڂ�i�߂钆�Ō���Ŏg����֗��ȋ@�\������ΏЉ�Ă��������Ǝv���܂��B

�@�܂��{�A�ڂł́A����܂�4.0�n�ʼn����i�߂Ă��܂������A����o�[�W�����A�b�v�����ꂢ���̂ɍ��킹�Ă����A�o�[�W�����ɂ���Ďg���Ȃ��@�\�Ȃǂ�����΁A���̂��Ƃ𖾎�����`���Ői�߂Ă����܂��B

�@����́A�]���̘A�ڂɖ߂�ARails��MVC���f���́uM�v�ł���uActiveRecord�v���g�����Ȃ���悤�ɁA�ڍׂɉ�����܂��B

�u�J������ł����Ǝg����Rails 4����v�o�b�N�i���o�[

���҃v���t�B�[��

�� �c�iRails�Z�p�ҔF��V���o�[�������쐬�ҁj

����2�N��㐶�܂�B2006�N���獂��ŏ��H�w���w��ł����������͏����v���O���~���O���ł��Ȃ��H�w���������B���ƌ�A����̐�U�Ȃɏオ�������̂̃}���l���������L�����p�X���C�t�ɖO�������ߋx�w���ēn���B�����Ńv���O���~���O�ɑ΂���R���v���b�N�X���������邽�߂�Ruby on Rails�ȂǂŃA�v���P�[�V��������邱�Ƃ��o����B

�A���ォ�猻�݂܂ł͕��w�����E�V�X�e���Ɋւ��錤�����s���Ȃ���A�A�W���C���E�F�A��Ruby on Rails�A�v���P�[�V�����̊J���Ɩ��ɏ]�����Ă���B

�D���ȃ��\�b�h��inject�B


�ďC�҃v���t�B�[��

�R�� ���i�iRuby�Ɩ��J����7�N�j

���Ɍ����܂�B1997�N����x���`���[�n�̃p�b�P�[�W�x���_�[��10�N�ԋΖ��B�����A�g�p���Ă��������Java�ƃT�[�o�[�T�C�hJavaScript�B

2007�N���IT�R���T����Ђɓ]�E���ARuby�Əo����ďՌ����󂯂�B��V�X�e����Ruby on Rails�Œu��������v���W�F�N�g�ɏ]���B����ȗ�Ruby��؂ŁARuby on Rails�̃v���O�C����gem���J���B

2013�N���A������ЃA�W���C���E�F�A�ɏ����B�A�W���C���Ȏ�@�ŁARuby on Rails���g���Ċ�ƌ����V�X�e�����\�z����Ɩ��ɏ]���B

Ruby�֐������B�D���ȃ��\�b�h��tap�B

Twitter�F@spring_kuma�AFacebook�F�R�� ���i


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