Hatena::¥Ö¥í¥°(Diary)

Èà½÷¤«¤é¤Ï¡¢¤ª¤¤¤Á¤ã¤ó¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹ RSS¥Õ¥£¡¼¥É Twitter

2013-09-23

Rails 4 ¤Ø°Ü¹Ô¤·¤Æ¤¢¤é¤¿¤á¤ÆÂçÀÚ¤À¤È»×¤Ã¤¿¤³¤È + Ìò¤ËΩ¤Ã¤¿¥ê¥ó¥¯¤òÁ´ÎϤޤȤá

Àè½µ¡¢babyshark¡Ê¥¨¥í¥µ¥¤¥È¤Ë¤Ä¤­±ÜÍ÷Ãí°Õ¡Ë¤ò Rails 3.2.13 ¤«¤é Rails 4.0.0 ¤Ë¥¢¥Ã¥×¥Ç¡¼¥È¤·¤Þ¤·¤¿¡£¹«¤Î¾ðÊó¤Ç¤Ï

StrongParameters ¤µ¤¨µ¤¤ò¤Ä¤±¤Æ¤ª¤±¤Ð¡¢¤Ê¤ó¤È¤«¤Ê¤ë


Ū¤Ê¡£¤¤¤ä¤¤¤ä¡¢¤¿¤·¤«¤Ë Rails 2.3 -> 3.0 ¤Û¤É¤ÎÂçÊѤµ¤Ç¤Ï¤Ê¤¤¤Ë¤·¤í¡¢·ë¹½ÂçÊѤǤ·¤¿¤è¡£¾¨¤á¤Æ¤«¤«¤ë¤È¥¨¥é¥¤ÌܤËÁø¤¦¤È»×¤¤¤Þ¤¹¡£


¤È¤¤¤¦¤ï¤±¤Ç¡¢°Ü¹Ô¤·¤Æ¤ß¤Æ²þ¤á¤ÆÂçÀÚ¤À¤È»×¤Ã¤¿¤³¤È¤È¡¢¥Ï¥Þ¤Ã¤¿¥Ý¥¤¥ó¥È¤ò¶¦Í­¤·¤Þ¤¹¡£µ×¤·¤Ö¤ê¤ÎĹʸ¡£Á´ÎϤǤ¤¤­¤Þ¤¹¤è¡£


Rails 4 ¤Ø°Ü¹Ô¤·¤Æ¤¢¤é¤¿¤á¤ÆÂçÀÚ¤À¤È»×¤Ã¤¿¤³¤È + Ìò¤ËΩ¤Ã¤¿¥ê¥ó¥¯¤òÁ´ÎϤޤȤá
  • 1. Rails 3.2 ¤È¤ÎÊѹ¹ÅÀ¤òÇİ®¤·¤Æ¤ª¤¯
  • 2. »È¤Ã¤Æ¤¤¤ë gem ¤¬ Rails 4 ¤ËÂбþ¤·¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë
  • 3. »öÁ°¤Ë Rails 3.2 ¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Þ¤Ç¾å¤²¤Æ¤ª¤¯
  • 4. gem ¤â¤Ç¤­¤ë¤À¤±ºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ë¤·¤Æ¤ª¤¯
  • 5. ¥Æ¥¹¥È¤ò½ñ¤¤¤Æ¤ª¤¯
  • 6. °Ü¹Ô¤ò¼ê½õ¤±¤·¤Æ¤¯¤ì¤ë gem ¤òÇİ®¤·¤Æ¤ª¤¯
  • 7. °Ü¹Ô¤¹¤ë¤«¿·¤·¤¯¤Ä¤¯¤êľ¤¹¤«¸¡Æ¤¤¹¤ë
  • 8. ÀßÄê¥Õ¥¡¥¤¥ë¤Îº¹Ê¬¤òÇİ®¤·¤Æ¤ª¤¯
  • 9. ¥Ï¥Þ¤ê¤É¤³¤í¤Þ¤È¤á
    • (1) ¥Ð¥ê¥Ç¡¼¥¿¤ÎÀµµ¬É½¸½
    • (2) Sweeper ¤¬»È¤¨¤Ê¤¯¤Ê¤Ã¤¿
    • (3) jQuery ¤Î live ¤¬¸ú¤«¤Ê¤¯¤Ê¤Ã¤¿
    • (4) rake test:prepare ¤Ç¤­¤Ê¤¤
    • (5) Capybara ¤µ¤ó¤¬¤¡¤¢¤¢¤¢
    • (6) Bootstrap ¤Î¥Ç¥¶¥¤¥ó¤¬Êø¤ì¤¿
    • (7) Capistrano ¤«¤é¥Ç¥×¥í¥¤¤Ç¤­¤Ê¤¤
    • (8) ¤½¤Î¾
  • 10. DEPRECATION WARNING ¤Î¶îÃà
    • (1) ̾Á°ÉÕ¤­¥¹¥³¡¼¥×¤ò lambda µ­Ë¡¤Ë¤¹¤ë
    • (2) will_paginate ¤Î order »ØÄê
  • »²¹Í½ñÀÒ

1. Rails 3.2 ¤È¤ÎÊѹ¹ÅÀ¤òÇİ®¤·¤Æ¤ª¤¯

¤³¤ì¤Ï¤â¤¦¡¢Åö¤¿¤êÁ°¤Ç¤¹¤±¤É¤â¡£Çİ®¤·¤Ê¤¤¤Ç¥Ð¡¼¥¸¥ç¥ó¾å¤²¤Á¤ã¤¦¤Î¤Ï¼«»¦¹Ô°Ù¤Ç¤¹¡£


ºÙ¤«¤¤ÅÀ¤ò´Þ¤á¤ë¤È·ë¹½Êѹ¹ÅÀ¤¬¤¢¤ë¤Î¤Ç¡¢¤É¤ó¤ÊÊѹ¹ÅÀ¤¬¤¢¤ë¤Î¤«»öÁ°¤ËÇİ®¤·¤Æ¤ª¤¯¤Îɬ¿Ü¤Ç¤¹¡£WEB+DB PRESS vol.73 ¤Ë¡Ö¾Ü²ò Rails4¡×¤È¤¤¤¦ÆÃ½¸¤¬ºÜ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ì¤ËÌܤòÄ̤¹¤Î¤¬¤­¤Ã¤È°ìÈÖÎɤ¤ÊýË¡¤Ç¤¹¡£

¤É¤¦¤·¤Æ¤â¥¦¥§¥Ö¾ðÊó¤¬Îɤ¤¡Ê¤À¤Ã¤ÆÌµÎÁ¤À¤·¡Ë¤È¤¤¤¦¿Í¤Ï¡¢²¼µ­¥ê¥ó¥¯¤¢¤¿¤ê¤«¤Ê¡¼


¤¤¤ä¡¼¡¢¤Ç¤â¤ä¤Ã¤Ñ¤ê¡¢WEB+DB PRESS ¤Î¤Û¤¦¤ò¿ä¤·¤¿¤¤¤Ê¡¼¡£36¥Ú¡¼¥¸¤Ë¤â¤ï¤¿¤Ã¤Æ¡¢¾Ü¤·¤¯Ê¬¤«¤ê¤ä¤¹¤¯½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡£


2. »È¤Ã¤Æ¤¤¤ë gem ¤¬ Rails 4 ¤ËÂбþ¤·¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë

Âç»ö¡£Rails 4 ¤Ë¾å¤²¤¿¸å¤Ëư¤«¤Ê¤¤¤³¤È¤Ëµ¤¤Å¤¤¤¿¤é¡¢¿Ê¤à¤âÃϹö¡¢Ìá¤ë¤âÃϹö¤Ç¤¹¡£¡£


¤½¤ìÀìÍѤΥµ¥¤¥È¤¬¤¢¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¤Þ¤À¤Þ¤À¾ðÊ󤬽з¤Ã¤Æ¤¤¤Ê¤¤´¶¤¸¤¬¤¢¤ê¤Þ¤¹¤Í¡£¡£


¿ÍÃ줵¤ó¤Ë´¶¼Õ¤·¤Þ¤·¤ç¤¦¡£


¤Á¤Ê¤ß¤Ë babyshark ¤Ç¤Ï¡¢¸¡º÷µ¡Ç½¤Ë¤ª¼ê·Ú¤Ê MetaSearch¡Êmeta_search¡Ë¤ò»È¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¸½»þÅÀ¤Ç Rails 4 ¤ËÂбþ¤·¤Æ¤ª¤é¤º¡¢¤«¤Ä³«È¯¤â»ß¤Þ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¤Î¤Ç¡¢¸å·Ñ¤é¤·¤¤ Ransack ¤Ë¾è¤ê´¹¤¨¤Þ¤·¤¿¡£


3. »öÁ°¤Ë Rails 3.2 ¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Þ¤Ç¾å¤²¤Æ¤ª¤¯

¤¤¤Þ¸½ºß Rails 3.2 ¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤¬ 3.2.14¡£¤Ç¤­¤ë¤À¤±ºÇ¿·¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤é°Ü¹Ô¤µ¤»¤¿Êý¤¬ÌµÂ̤˥ϥޤé¤Ê¤¯¤ÆºÑ¤à¤È»×¤¤¤Þ¤¹¡£


4. gem ¤â¤Ç¤­¤ë¤À¤±ºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤Ë¤·¤Æ¤ª¤¯

¤¢¤È¡¢¸å½Ò¤·¤Þ¤¹¤¬¡¢º£²ó Ëͤ¬¥Ï¥Þ¤Ã¤¿¤Î¤Ï¡¢Rails 4 ¤½¤Î¤â¤Î¤è¤ê¤â°Ü¹Ô¤Ëȼ¤¦¡¢¼þÊÕ gem ¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤Ëµ¯°ø¤¹¤ëÅÀ¤¬Â¿¤¤¤Ç¤¹¡£»È¤Ã¤Æ¤¤¤ë gem ¤â¡¢°Ü¹ÔÁ°¤Ë¤Ç¤­¤ë¤À¤±ºÇ¿·¤Î¤â¤Î¤Ë¤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£


ÆÃ¤Ë Capybara ¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¾å¤²¤¿¤é¥Æ¥¹¥È¤³¤±¤ë¤È¤«·ë¹½¤¢¤ë¤Î¤Ç¡¢»öÁ°¤Ë¾å¤²¤ÆÄÙ¤·¤Æ¤ª¤¤¤¿Êý¤¬¡Ê¥¼¥Ã¥¿¥¤¤Ë¡ËÎɤ¤¤Ç¤¹¡£


5. ¥Æ¥¹¥È¤ò½ñ¤¤¤Æ¤ª¤¯

¥Æ¥¹¥È¤ò½ñ¤«¤Ê¤¯¤Æ¤âµö¤µ¤ì¤ë¤Î¤Ï¡Ê£ò£ù


»öÁ°¤Ë¤¤¤í¤¤¤í½àÈ÷¤·¤Æ¤ª¤¤¤Æ¤â¡¢Rails 4 ¤Ë¾å¤²¤¿Ä¾¸å¤Ï¡¢¥Æ¥¹¥È¤¬À¹Âç¤Ë¤³¤±¤Þ¤¹¡£¤¬¡¢¤½¤ì¤Ï¥Æ¥¹¥È¤ò½ñ¤¤¤Æ¤¤¤ì¤Ð¤³¤½µ¤¤Å¤±¤ë½¤Àµ²Õ½ê¤Ê¤Î¤Ç¡¢¥Æ¥¹¥È¤Ï¤­¤Á¤ó¤È½ñ¤¤¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£¤Í¡£


6. °Ü¹Ô¤ò¼ê½õ¤±¤·¤Æ¤¯¤ì¤ë gem ¤òÇİ®¤·¤Æ¤ª¤¯

°Ü¹Ô¤ò¼ê½õ¤±¤·¤Æ¤¯¤ì¤ë gem ¤òÂçÊ̤¹¤ë¤È¡¢¼¡¤Î 2¤Ä¤¬¤¢¤ê¤Þ¤¹¡£

  • (1) Rails 4 ¤Îµ¡Ç½¤ò Rails 3.2 ¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤â¤Î
  • (2) Rails 4 ¤ÇËÜÂΤ«¤éÀÚ¤ê¼Î¤Æ¤é¤ì¤¿µ¡Ç½¤ò Rails 4 ¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤â¤Î

(1) ¤Î¥¿¥¤¥×¤È¤·¤Æ¤Ï¡¢Î㤨¤Ð Rails 3.2 ¤Ç StrongParameters ¤ò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë strong_parameters ¤È¤«¡£


(2) ¤Î¥¿¥¤¥×¤È¤·¤Æ¤Ï¡¢Rails 4 ¤Ç attr_accessible ¤ò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë protected_attributes ¤È¤«¡£Æ±¤¸¤¯ Rails 4 ¤Ç sweeper¡Êopserver¡Ë¤ò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë rails-observers ¤È¤«¡£Â¾¤Ë¤â¥­¥ã¥Ã¥·¥å´Ø·¸¡¢¥»¥Ã¥·¥ç¥ó¡¢¤¤¤í¤¤¤í¡£


²¼µ­¤¬¾Ü¤·¤¤¤Ç¤¹¡£


Rails 4 ¤ÎÊѹ¹ÅÀ¤òÇİ®¤·¤¿¾å¤Ç¡¢¾åµ­¤Î gem ¤È¤ÎÉÕ¤­¹ç¤¤Êý¤ò·è¤á¤Æ¤ª¤¯¡£


¸Ä¿ÍŪ¤Ë¤Ï¡¢°Ü¹Ô¤ò¤Ç¤­¤ë¤À¤±¥¹¥à¡¼¥º¤Ë¹Ô¤¦¤¿¤á¤Ë¡¢ÀѶËŪ¤Ë (1) ¤Î¥¿¥¤¥×¤Î gem ¤òÍøÍѤ¹¤ë¤Î¤¬¸­ÌÀ¤«¤Ê¤È»×¤¤¤Þ¤¹¡£¤¢¤È¡¢¤¤¤º¤ì½ñ¤­´¹¤¨¤ë¤Ä¤â¤ê¤Ç¤«¤Ä°Ü¹ÔÁ°¤Ë½ñ¤­´¹¤¨²Äǽ¤Ê¤â¤Î¤Ï¡¢°Ü¹ÔÁ°¤Ë½ñ¤­´¹¤¨¤Æ¤·¤Þ¤¦¡£


¤Þ¤¿¡¢¸å½Ò¤·¤Þ¤¹¤¬¡¢°Ü¹Ôľ¸å¡¢¤Þ¤º¤ÏºÇû¤Çư¤¯¤è¤¦¤Ë¤·¤Æ¡¢¥Æ¥¹¥È¤òÄ̤·¤¿¤«¤Ã¤¿¤Î¤Ç¡¢(2) ¤Î¥¿¥¤¥×¤Î gem ¤Ë¤â¤ªÀ¤Ïäˤʤê¤Þ¤·¤¿¡£


7. °Ü¹Ô¤¹¤ë¤«¿·¤·¤¯¤Ä¤¯¤êľ¤¹¤«¸¡Æ¤¤¹¤ë

¤ß¤ó¤ÊÂç¹¥¤­¡ÖRails ¥Á¥å¡¼¥È¥ê¥¢¥ë¡×¤Ë¤Ï¡¢Rails 3.2 ¤«¤é¤Î¡Ö°Ü¹Ô¡×¤Ç¤Ï¤Ê¤¯¤Æ¡¢Rails 4 ¤Ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¡Ö¿·µ¬¤Ë¤Ä¤¯¤Ã¤Æ¡¢¤½¤³¤Ë Rails 3.2 ¤Î¥Õ¥¡¥¤¥ë¤ò°Ü¤·¤Æ¤¤¤¯¡×ÊýË¡¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


°ì¸«²ó¤êÆ»¤Ë´¶¤¸¤Þ¤¹¤¬¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îµ¬ÌϤ¬¾®¤µ¤¤¤È¤­¤Ï¡¢¤³¤Á¤é¤Î¤ä¤êÊý¤Î¤Û¤¦¤¬¶áÆ»¤«¤â¤·¤ì¤Þ¤»¤ó¡£


¤Á¤Ê¤ß¤ËËͤξì¹ç¤Ï¡¢°Ü¹Ô¡¢¤Ä¤Þ¤ê rake rails:update ¤¹¤ëÊýË¡¤òÁª¤Ó¤Þ¤·¤¿¡£¤É¤Á¤é¤Î¤ä¤êÊý¤Î¤Û¤¦¤¬Áᤫ¤Ã¤¿¤Î¤«¤ÏÈù̯¤Ê¤È¤³¤í¤Ç¤¹¤¬¡¢¿·µ¬¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¤Ä¤¯¤ë¤È¤Ê¤ë¤È Git ¤Î¥í¥°¤¬·ã¤·¤¤¤³¤È¤Ë¤Ê¤ê¤½¤¦¤À¤Ã¤¿¤Î¤ÇÈò¤±¤¿¤È¤¤¤¦´¶¤¸¤Ç¤¹¡£


8. ÀßÄê¥Õ¥¡¥¤¥ë¤Îº¹Ê¬¤òÇİ®¤·¤Æ¤ª¤¯

¾åµ­ 7. ¤Î¤¦¤Á¡¢¡Ö¿·µ¬ºîÀ®¡×¤Ç¤Ï¤Ê¤¯¡Ö°Ü¹Ô¡×¤¹¤ëÊýË¡¤ò¤È¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó´Ö¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Îº¹Ê¬¤òÇİ®¤·¤Æ¤ª¤¯¤È²¿¤«¤ÈĽ¤ê¤Þ¤¹¡£


¾¤Î¥×¥í¥¸¥§¥¯¥È¤Î¥×¥ë¥ê¥¯¥¨¥¹¥Èº¹Ê¬¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤·¤¿¡£


9. ¥Ï¥Þ¤ê¤É¤³¤í¤Þ¤È¤á

¤µ¤Æ¡¢°Ü¹Ô¤Ëȼ¤¦¥Ï¥Þ¤ê¤É¤³¤í¤Ë¤Ä¤¤¤Æ¡¢Àè¿Í¤Î¤¢¤ê¤¬¤¿¤¤¾ðÊó¤ò¤Þ¤È¤á¤Þ¤¹¡£¥ê¥ó¥¯¤¬¸«¤Ä¤«¤é¤Ê¤¤¤â¤Î¤Ï¼«Á°¤Ç½ñ¤­¤Þ¤¹¡£


(1) ¥Ð¥ê¥Ç¡¼¥¿¤ÎÀµµ¬É½¸½

Rails 4 ¤«¤é¥Ð¥ê¥Ç¡¼¥¿¤ÎÀµµ¬É½¸½¤¬¸·¤·¤¯¤Ê¤ê¤Þ¤·¤¿¡£Ê£¿ô¹Ô¤Îʸ»úÎó¤ËÂФ·¤Æ ^ ¤È¤« $ ¤ò»È¤Ã¤Æ¤¤¤¿¤é¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¾ÜºÙ¤Ï²¼µ­¥ê¥ó¥¯»²¾È¡£

The provided regular expression is using multiline anchors (^ or $), which may present a security risk. Did you mean to use \A and \z, or forgot to add the :multiline => true option?


(2) Sweeper ¤¬»È¤¨¤Ê¤¯¤Ê¤Ã¤¿

Sweeper ¤òÍøÍѤ·¤Æ¥­¥ã¥Ã¥·¥å¤Îºï½ü¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¥¨¥é¡¼¤¬½Ð¤Þ¤·¤¿¡£

undefined method `cache_sweeper' for VideosController:Class


¤Þ¤À·Ñ³¤·¤Æ»È¤¤¤¿¤¤¤Î¤Ç¡¢rails-observers ¤òÆþ¤ì¤Þ¤·¤¿¡£


(3) jQuery ¤Î live ¤¬¸ú¤«¤Ê¤¯¤Ê¤Ã¤¿

Rails 4 ¤Ø¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤È¤È¤â¤Ë¡¢jQuery ¤Î¥Ð¡¼¥¸¥ç¥ó¤â¾å¤¬¤ë¤Î¤Ç¡¢Î㤨¤Ð live ¤È¤«¡¢Æ°¤«¤Ê¤¯¤Ê¤ë¥á¥½¥Ã¥É¤ò½ñ¤­´¹¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£


(4) rake test:prepare ¤Ç¤­¤Ê¤¤

Rails 3.2 ¤Î¤È¤­¤Ï rake db:test:prepare ¤Ã¤Æ¤·¤Æ¤Þ¤·¤¿¤¬¡¢Rails 4 ¤«¤é¤Ï rake test:prepare ¤È¤¤¤¦¥³¥Þ¥ó¥É¤Ë¤Ê¤ê¤Þ¤·¤¿¡ÊÁ°¤Î¥³¥Þ¥ó¥É¤â»È¤¨¤ë¡Ë¡£¤¬¡¢²¼µ­¤Î¥¨¥é¡¼¤Ç¤³¤±¤Þ¤·¤¿¡£

cannot load such file -- zip/zip


rubyzip ¤Î 0.9.9 ¤òÆþ¤ì¤Æ²ò·è¡£1.0.0 ¤À¤È¥À¥á¤Ç¤·¤¿¡£

gem 'rubyzip', '0.9.9'

(5) Capybara ¤µ¤ó¤¬¤¡¤¢¤¢¤¢

º£²ó¤Î°Ü¹Ô¤Ë¤è¤ê capybara ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¾å¤²¤Þ¤·¤¿¡Ê1.1.4 -> 2.1.0¡Ë¡£¤½¤¦¤·¤¿¤é¡¢¥Æ¥¹¥È¤¬¤³¤±¤ë¤³¤±¤ë¡£¡£Rails ¤Ë¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¿À gem ¤Î¤Ò¤È¤Ä¤Ç¤¹¤¬¡¢¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤Î¤¿¤Ó¤Ëµã¤«¤µ¤ì¤ë¿Í³½Ð¤Ç¤¹¤Í¡£¡£


¤½¤¦¤¤¤¨¤Ð¡¢²áµî¤Ë°ìÅÙ 2.0 ¤Ë¾å¤²¤è¤¦¤È¤·¤Æ¡¢¤³¤ì̵Íý¥²¡¼¤À¤ï¤È»×¤Ã¤ÆÌᤷ¤¿¤Î¤ò»×¤¤½Ð¤·¤Þ¤·¤¿¡£2.1 ¤Ë¤Ê¤Ã¤Æ¡¢¤¤¤í¤¤¤í¤È¥ª¥×¥·¥ç¥ó¤Çµóư¤òÊѤ¨¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤è¤¦¤Ç¤¹¡£


±Ñ¸ì¤¬ÌµÍý¥²¡¼¤Ê¿Í¤Ï²¼µ­»²¾È¡£ÆâÍÆ¤Ï¤À¤¤¤¿¤¤Æ±¤¸¤Ã¤¹¡£


½ñ¤­Êý¤ÎÊѹ¹¤È¤«¡£

- it { expect(subject).to have_selector('title', text: "AV½÷Í¥°ìÍ÷ - #{I18n.t('site_name')}") }
+ it { expect(subject).to have_title("AV½÷Í¥°ìÍ÷ - #{I18n.t('site_name')}") } 

¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹¡£²¼µ­¤Ï meta ¥¿¥°¤Î¥Æ¥¹¥È¤Î¤¿¤á¤Ë½ñ¤¤¤¿¤â¤Î¤Ç¤¹¡£

+ Capybara.ignore_hidden_elements = false

(6) Bootstrap ¤Î¥Ç¥¶¥¤¥ó¤¬Êø¤ì¤¿

¤ª¤½¤é¤¯ Rails 4 ´Ø·¸¤Ê¤¤¤Ç¤¹¤±¤É¡£°Ü¹Ô¤Ëȼ¤¤ Bootstrap ´Ø·¸¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¾å¤¬¤Ã¤Æ¡¢°ìÉô¤Î¥Ç¥¶¥¤¥ó¤¬Êø¤ì¤Þ¤·¤¿¡£²¿¤¬¸À¤¤¤¿¤¤¤«¤È¤¤¤¦¤È¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢°Ü¹Ôºî¶È¤Ë¥Ç¥¶¥¤¥Ê¤Î¥µ¥Ý¡¼¥È¤âɬÍפÀ¤È¤¤¤¦¤³¤È¤Ç¤¹¡£

- bootstrap-sass (2.0.4.0)
+ bootstrap-sass (2.3.2.0)
- bootstrap-will_paginate (0.0.6)
+ bootstrap-will_paginate (0.0.9)
- bootswatch-rails (0.0.12)
+ bootswatch-rails (0.5.0) 

(7) Capistrano ¤«¤é¥Ç¥×¥í¥¤¤Ç¤­¤Ê¤¤

°Ü¹Ô¤Ëȼ¤¤ Capistrano 2.15.5 ¤Ë¾å¤²¤Æ¥Ç¥×¥í¥¤¤·¤è¤¦¤È¤·¤¿¤é¡¢¤³¤±¤Þ¤·¤¿¡£


Ëͤξì¹ç¤Ï¡¢Àµ¾ï¤Ëư¤¤¤Æ¤¤¤¿ 2.15.0 ¤Þ¤Ç¥Ð¡¼¥¸¥ç¥ó¤ò²¼¤²¤ÆÂн褷¤Þ¤·¤¿¤¬¡¢¸ø¼°¤ËÂнèÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤·¤¿¡£manifest.yml ¤ò¼êư¤Ç¥³¥Ô¡¼¤·¤Æ¤¢¤²¤ë¤È¤«¡£


(8) ¤½¤Î¾

ºÆ·Ç¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤ä¤Ï¤ê¤³¤Î¤¢¤¿¤ê¤Îɬ¤ºÌܤòÄ̤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ¤¤«¤â¡£ÄêÈ֤ݤ¤¡£


devise, friendly_id, acts_as_paranoid -> paranoia, format ¥Ð¥ê¥Ç¡¼¥¿¤ÎÀµµ¬É½¸½¤Û¤«¡£º£²óËͤÏÁø¶ø¤·¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¥í¥°¥¤¥ó¼þ¤ê¤Ç¤³¤±¤¿¤é¶²ÉݤǤ¹¤Í¡£


multi_db Åù MySQL ¤Þ¤ï¤ê¡£¤³¤Î¤¢¤¿¤ê¤â¥Ï¥Þ¤ê¤¿¤¯¤Ê¤¤¤Ê¡¼¡£


10. DEPRECATION WARNING ¤Î¶îÃà

¤Þ¤¢¡¢µÞ¤¤¤Ç¤ä¤ëɬÍפϤʤ¤¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢µ¤»ý¤Á¤È¤·¤Æ¡¢Á᤯¥¹¥Ã¥­¥ê¤·¤¿¤¤¤Ç¤¹¤·¤Í¡£¡£


(1) ̾Á°ÉÕ¤­¥¹¥³¡¼¥×¤ò lambda µ­Ë¡¤Ë¤¹¤ë

EPRECATION WARNING: Using #scope without passing a callable object is deprecated. For example `scope :red, where(color: 'red')` should be changed to `scope :red, -> { where(color: 'red') }`. There are numerous gotchas in the former usage and it makes the implementation more complicated and buggy. (If you prefer, you can just define a class method named `self.red`.). (called from ...


²¼µ­¤Î¤è¤¦¤Ê´¶¤¸¤Ç½ñ¤­´¹¤¨¤Þ¤¹¡£

- scope :available, where(status: Settings.tag.status.available) 
+ scope :available, -> { where(status: Settings.video.status.available) } 

(2) will_paginate ¤Î order »ØÄê

DEPRECATION WARNING: #apply_finder_options is deprecated.


will_paginate ¤Î order »ØÄê¤Ï¡¢paginate ¥á¥½¥Ã¥É¤Î³°¤Ë½Ð¤·¤Þ¤¹¡£

@videos = Video.available.
-        paginate(page:     params[:page],
-                 order:    order_text(params[:order]),
-                 per_page: per_page).
+        order(order_text(params[:order])).
+        paginate(
+          page: params[:page],
+          per_page: per_page)

°Ê¾å¤Ç¤¹¡£ºÇ¸å¤Þ¤Ç¤ªÉÕ¤­¹ç¤¤¤¤¤¿¤À¤­¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£¤ß¤Ê¤µ¤Þ¤Ë¤ª¤«¤ì¤Þ¤·¤Æ¤Ï¡¢Ìµ»ö¤Ë°Ü¹Ô¤Ç¤­¤Þ¤¹¤è¤¦¤Ë¡ª




»²¹Í½ñÀÒ

¤¤¤í¤¤¤í½ñ¤¤¤¿¤±¤É¡¢¤ä¤Ã¤Ñ¤ê Rails 4 ¤ÎÎɤ¤¤È¤³¤í¤òÀµ¤·¤¯»È¤¦¤Ë¤Ï¡¢²¼µ­¤ÏɬÆÉ¤À¤È»×¤¤¤Þ¤¹¡£

¥¹¥Ñ¥àÂкö¤Î¤¿¤á¤Î¥À¥ß¡¼¤Ç¤¹¡£¤â¤·¸«¤¨¤Æ¤â²¿¤âÆþÎϤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤
¥²¥¹¥È


²èÁüǧ¾Ú

¥È¥é¥Ã¥¯¥Ð¥Ã¥¯ - http://d.hatena.ne.jp/inouetakuya/20130923/1379930345
¤ª¤È¤Ê¤êÆüµ­