2023-01-01ãã1å¹´éã®è¨äºä¸è¦§
Rails Tipsã®31åç®ã§ã¯ãæ¨æ¥ä»ç´¹ãããt_arsããã«ãã¼ã¡ã½ããã®å¿ç¨ã¨ãã¦ãlabelsããã«ãã¼ãç´¹ä»ãã¾ãããlabelsãã¯ã¢ãã«ã®å±æ§åãä¸è¦§ã§åå¾ããã®ã«æç¨ã§ãç¹ã«è¡¨ã®ãããã¼ä½æãªã©ã«æ´»ç¨ã§ãã¾ãããã®ãã«ãã¼ã¯ãt_arsããå é¨ã§å¼ã³åºãâ¦
Rails Tipsã®30åç®ã§ããã«ãã¼ã¡ã½ããt_arsãç´¹ä»ãã¾ããt_arsã¯ã¢ãã«åãã¢ãã«ã®å±æ§åãåå¾ãã¾ããå¼æ°ã«ããè¿å´ããããã®ãç°ãªãã¾ããããããã®åå㯠config/locales/models/ja.yml ã«ä¿åãã¦ããã¾ãããã®ã¡ã½ããã«ããããã¥ã¼ãªã©ã«â¦
ãã®è¨äºã§ã¯ãRails Tipsã®29åç®ã¨ãã¦ãdestroyã®request_specã«ã¤ãã¦èª¬æãã¦ãã¾ãããã¹ãã®éå½¢ãæ示ããããã®ä¸ã§ãªãã¸ã§ã¯ããä¸ã¤æ¸ããã©ããã確èªããããªãã¸ã§ã¯ãã1æ¸ãã?ãã¨ããshared_exampleãå¼ã³åºããã¾ããã¾ãã権éã®ãããªâ¦
æ¬ç¨¿ã§ã¯ãRails Tipsã®28åç®ã¨ãã¦updateã®request_specã«ã¤ãã¦èª¬æãã¾ããå ·ä½çã«ã¯ããªãã¸ã§ã¯ãå±æ§ãå¤åããªã?ãã®ãã¹ãã«ç¦ç¹ãå½ã¦ã¦ãã¾ããå±æ§åã渡ããã¨ã§ãã®å±æ§å¤ãå¤æ´ãããªãã£ããã¨ã確èªããæ¹æ³ã示ãã¦ãã¾ããã¾ããupdateâ¦
ãã®ææ¸ã¯ãRails Tipsã®27åç®ã®è¨äºã§ãupdateã®request_specã«ã¤ãã¦èª¬æãã¦ãã¾ãã主ã«ãããªãã¸ã§ã¯ãå±æ§ãå¤åãã?ãã¨ãããã¹ããééããããã«ããªãã¸ã§ã¯ãã®å±æ§ãå¤æ´ãä¿åããæ¹æ³ã«ã¤ãã¦èª¬æãã¦ãã¾ããã¾ããshared_exampleã®ä½¿ç¨â¦
ãã®è¨äºã¯ãRails Tipsã®26åç®ã§ãcreateã®request_specã®ç°å¸¸ç³»ã«ã¤ãã¦èª¬æãã¦ãã¾ãã主ã«ã¤ãã³ã(Event)ã®ä½æã§ã¨ã©ã¼ãçºçããå ´åã®specã«ã¤ãã¦è§¦ãã¦ãã¾ããå ·ä½çã«ã¯ãã³ã¡ã³ãã空ç½ã§ããå ´åã«saveã§ã¨ã©ã¼ãçºçããã¬ã¹ãã³ã¹ãUnprocâ¦
ãã®è¨äºã¯ãçè ãNotionã¨ã¯ã¦ãªããã°ãæ´»ç¨ããããã°å·çã®éç¨ã«ã¤ãã¦èªã£ã¦ãã¾ããNotionã§ä¸æ¸ããä½æããã¯ã¦ãªããã°ã«è²¼ãä»ãã¦ãã¼ã¯ãã¦ã³å½¢å¼ã§è¨äºãå ¬éããæ¹æ³ãæ¡ç¨ãã¦ãã¾ãããã®æ¹æ³ã¯ãå¹ççãªããã°å·çãå¯è½ã«ããã¦ã«ã¹ã¿â¦
ãã®è¨äºã¯ãRails Tipsã®25åç®ã§ã"create"ã®"request_spec"ã®æ£å¸¸ç³»ã®æçµé¨åãè¦ã¦ãã¾ããå ·ä½çã«ã¯ãNotice ã¡ãã»ã¼ã¸ç¢ºèªãã«ç¦ç¹ãå½ã¦ããªãã¤ã¬ã¯ãæã«ãã¯ã©ã¹ãç»é²ãã¾ãããã¨ããã¡ãã»ã¼ã¸ãNoticeã¨ãã¦è¡¨ç¤ºããããã¨ã確èªãã¾ããè¨â¦
ãã®ææ¸ã¯ãRails Tipsã®24åç®ã§ãcreateã®request_specã«ã¤ãã¦èª¬æãã¦ãã¾ããç¹ã«ããªãã¸ã§ã¯ããä½æãããå¾ã®ãªãã¤ã¬ã¯ãã®æåã確èªãããã¹ãã³ã¼ãã®ä½æã«ã¤ãã¦è©³ããè¿°ã¹ã¦ãã¾ãããªãã¤ã¬ã¯ãå ã¯return_pathã§è¨å®ãããã¹ãã¯æå¾ ããâ¦
æ¬è¨äºã¯ãRails Tipsã®23åç®ã¨ãã¦ãcreateã®request_specãç´¹ä»ãã¦ãã¾ããç¹ã«ããªãã¸ã§ã¯ãã1å¢ãããï¼ãã¨ãããã¹ãã«ç¦ç¹ãå½ã¦ããã®ãã¹ãããªãã¸ã§ã¯ããä¸ã¤å¢ãããã¨ã確èªããæ¹æ³ã解説ãã¦ãã¾ããã¾ãããã®ããã®å®è£ æ¹æ³ã«ã¤ãã¦ãâ¦
ãã®è¨äºã§ã¯ãRails Tipsã®22åç®ã¨ãã¦ãrequest_specã«ä½¿ãshared_exampleãç´¹ä»ãã¦ãã¾ããç¹ã«ãrootãªãã¤ã¬ã¯ãã®ç¢ºèªã«ã¤ãã¦è©³ãã説æãã¦ãã¾ããããã¯ãèªåã®ãã®ã§ã¯ãªããã¼ã¸ã表示ãããã¨ããããããããã¼ã¸ã«æ»ãããã«ããæ©è½ã§ãâ¦
æ¬è¨äºã§ã¯ãRails Tipsã®21åç®ã¨ãã¦ãrequest_specã«ä½¿ãshared_exampleã®ç´¹ä»ãè¡ãã¾ããããã§ã¯ãç¹ã«æç»çµæã«æååãå«ã¾ãã¦ãããã©ããããã¹ãããshared_exampleãç´¹ä»ãã¾ãããã³ãã¬ã¼ãã«è©²å½ã®æååã表示ãããã°ãã¹ãã¯æåãã¾ãâ¦
ãã®è¨äºã§ã¯ãRails Tipsã®20åç®ã¨ãã¦ãrequest_specã«ä½¿ãshared_exampleã®ç´¹ä»ãè¡ããã¦ãã¾ããè¨äºã§ã¯ãã¬ã¹ãã³ã¹ã³ã¼ãã®ç¢ºèªæ¹æ³ã«ã¤ãã¦è©³ãã説æããã¦ãã¾ãããã®ç¢ºèªæ¹æ³ã¯ããªã¯ã¨ã¹ãã®ã¬ã¹ãã³ã¹ã³ã¼ããæå®ãããæ°å¤ã§ãããã¨ãæ¤â¦
ãã®è¨äºã§ã¯ãRails Tipsã®19åç®ã¨ãã¦ãã³ã³ããã¼ã©ã§ã¢ãã«ãåå¾ããéã®è¨è¿°ãæ¸ããããã®ãã«ãã¼ã¡ã½ããã«ã¤ãã¦è§£èª¬ãã¦ãã¾ãããã©ã¡ã¼ã¿ã®æ¸¡ãæ¹ã«ãããobject_from_params_id, objects_from_params, object_from_params_another_id ã®3種é¡â¦
ãã®è¨äºã§ã¯ãRails Tipsã®18åç®ã¨ãã¦ãã³ã³ããã¼ã©ã®æ¥æ¬èªè¨è¿°ãæ¸ããããã®ãã«ãã¡ã½ããã«ã¤ãã¦è§£èª¬ãã¦ãã¾ããç¹ã«ãåé¤ã®éã®ç¢ºèªã¡ãã»ã¼ã¸ã®ä½æã«ãã©ã¼ã«ã¹ãã¦ãããconfirm_destroyã¡ã½ãããç¨ãã¦åé¤ãªã³ã¯ã®è¨å®ãç°¡åã«ã§ãããã¨â¦
æ¬ç¨¿ã§ã¯Rails Tipsã®17åç®ã¨ãã¦ãnotice_messageãã«ãã¼ã¡ã½ããã¨alert_messageãã«ãã¼ã¡ã½ããã«ã¤ãã¦èª¬æãã¦ãã¾ãããããã®ãã«ãã¼ã¡ã½ããã¯ãcreateãupdateãdestroyãªã©ã®ã¢ã¯ã·ã§ã³æã«è¡¨ç¤ºããå®åã®notice messageãalert messageãI18nâ¦
ãã®è¨äºã§ã¯ãRails Tipsã®16åç®ã¨ãã¦ãã¢ãã«ã®ãã¹ããç°¡åã«æ¸ãããã®Shared exampleã«ã¤ãã¦è§£èª¬ãã¦ãã¾ããå ·ä½çã«ã¯ããé åã¡ã½ããå¼ã³åºããã主é¡ã«ãé åã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ãã¦åãã¡ã½ãããå¼ã³åºãããã®è¿ãå¤ãé åã§æ¯è¼ãããã¹ãâ¦
ãã®è¨äºã¯ãRails Tipsã®15åç®ã§ããåã?ããä¸è´ããªã?ãã¨ãããã¹ãã¡ã½ããã«ã¤ãã¦è§£èª¬ãã¦ãã¾ãããããã¯ä¸æã®ãªãã¸ã§ã¯ããåãåºãã¡ã½ããã®ãã¹ãã«ä½¿ç¨ããã¾ããå ·ä½çã«ã¯ãææ¥ã¯ã©ã¹ã§wdayã®æ°å¤ããç¹å®ã®ææ¥ãåãåºãã¡ã½ããweeâ¦
Rails Tipsã®14åç®ã§ã¯ãmodelã®ãã¹ããç°¡åã«æ¸ãããã®shared_exampleã®ç´¹ä»ãç¶ãã¦ãã¾ããç¹ã«ãé åå ã«åå¨ããããåå¨ããªããã確èªããããã®shared_exampleã使ç¨ãã¦ãwhereæ¡ä»¶ã®å¢çå¤ãã§ãã¯ãè¡ã£ã¦ãã¾ããããã«ããããã¹ããããç°¡â¦
æ¬è¨äºã§ã¯ãRuby on Railsã®ãã¹ãã®å¹çåã«ã¤ãã¦è§£èª¬ãã¦ãã¾ããç¹ã«ãget_or_create ç³»ã®ã¡ã½ããã®ãã¹ãã«ãã©ã¼ã«ã¹ãå½ã¦ããªãã¸ã§ã¯ãæ°ãå¤åãããã©ããã確èªãã shared_example ã®ä½¿ç¨æ¹æ³ã説æãã¦ãã¾ãããã®çµæããã¹ãã®è¨è¿°éãæ¸â¦
ãã®è¨äºã§ã¯ãRuby on Railsã®ãã¹ããå¹çåããããã®ãåä¸ã¡ã½ããå¼ã³åºããã«ã¤ãã¦è§£èª¬ãã¦ãã¾ããåä¸ã®ãªãã¸ã§ã¯ãã«å¯¾ãã¦ã¡ã½ãããå¼ã³åºãããã®çµæã確èªããshared_exampleã使ç¨ãããã¹ãã®è¨è¿°éãæ¸ãããã¨ãã§ããã¨è¿°ã¹ã¦ãã¾ããâ¦
ãã®è¨äºã§ã¯Ruby on Railsãå©ç¨ããã¢ãã«ãã¹ãã®ããã®shared_exampleã®ä¸é¨ããéé 確èªãã«ã¤ãã¦è§£èª¬ãã¦ãã¾ãããã¼ã¿ã®ä¸¦ã³æ¿ãã®ãã¹ãæ¹æ³ã詳ãã説æããç¹ã«éé ã®ä¸¦ã³æ¿ãã«éç¹ãç½®ãã¦ãã¾ããå ·ä½çãªã³ã¼ãä¾ã¨å ±ã«ãéé ã®è¨å®æ¹æ³ã¨æ³¨â¦
ãã®è¨äºã¯ãRuby on Railsã使ç¨ããã¢ãã«ãã¹ãã®ããã®shared_exampleã®è§£èª¬ã§ãç¹ã«æé 確èªï¼ãã¼ã¿ã®ä¸¦ã³æ¿ããã¹ãï¼ã«ç¦ç¹ãå½ã¦ã¦ãã¾ããsort_orderå±æ§ããã®ä»ã®å±æ§ï¼ä¾ãã°ãæååãæ¥ä»åï¼ãç¨ãã並ã³æ¿ãã®ãã¹ãæ¹æ³ã詳細ã«èª¬æãã¦ãâ¦
Rails Tipsã®9åç®ã®è¨äºã§ã¯ãmodelã®ãã¹ããç°¡åã«æ¸ãããã®shared_exampleã®ç´¹ä»ãç¶ãã¦ãã¾ãããã®è¨äºã§ã¯ãã親åé¤æã«nullãè¨å®ãã«ã¤ãã¦èª¬æãã¦ãã¾ãã親ãåé¤ãããå ´åã«é¢é£ãæ¶ãããã¨ã確èªãããã¹ãã§ãããå ·ä½çãªä¾ã¨ãã¦åæ¤â¦
ãã®ææ¸ã¯Rails Tipsã®8åç®ã§ã親ã®åé¤ã«é¢ãããã¹ãã«ã¤ãã¦èª¬æãã¦ãã¾ãã親ãåé¤ä¸å¯ã§ããæ¡ä»¶ã¯ãåé¤ã§ããªãã¢ãã«ã§ãããããªã¬ã¼ã·ã§ã³ã®ä¾åé¢ä¿ã§åé¤ãããªããã®ã©ã¡ããã§ããå ·ä½çãªå®è£ ä¾ã示ããã¦ãã¾ãã (è¦ç´ by Notion AI)
Rails Tipsã®7åç®ã§ã¯ãã¢ãã«ãã¹ãã®ããã®shared_exampleã®è§£èª¬ãç¶ãã親ãåé¤ãããæã«åä¾ãåé¤ããããã¨ã確èªãããã¹ãã«ã¤ãã¦èª¬æãã¦ãã¾ãã親åé¤æã«èªåãåé¤ããè¨å®ã¯ã´ããã¼ã¿ãæ®ããªãããã«éè¦ã§ãããééãã¦è¦ªãåé¤ãããâ¦
Rails Tipsã®6åç®ã®è¨äºã§ã¯ãmodelã®ãã¹ããç°¡åã«æ¸ãããã®shared_exampleã®ç´¹ä»ãè¡ããã¦ãã¾ããé¢é£ç¢ºèªã®é¨åã§ã¯ãbelongs_toãhas_oneã®é¢ä¿ã«ã¤ãã¦èª¬æããã¦ãããããããã®é¢é£ããã¹ãããããã®shared_exampleãæä¾ããã¦ãã¾ããã¾ããâ¦
ãã®ææ¸ã¯ãRails Tipsã®5åç®ã§ãåé¤å¯è½å¶ç´ã¨åé¤ä¸å¯å¶ç´ã«ã¤ãã¦ã®ããã°è¨äºã§ããåé¤å¯è½å¶ç´ã¯ãã¼ã¿ã®åé¤ãå¯è½ãã©ããããã§ãã¯ããåé¤ä¸å¯å¶ç´ã¯åé¤ãä¸å¯è½ãªæ¡ä»¶ããã¹ããã¾ããã¾ããå±æ§ã®ä¸æå¶ç´ããã§ãã¯ããããã®shared_exampâ¦
Rails Tips ã® 4 åç®ã§ã¯ãmodel ã®ãã¹ããç°¡åã«æ¸ãããã® shared_example ã®ç´¹ä»ãç¶ãã¦ãã¾ãããã®è¨äºã§ã¯ãè¤åä¸æå¶ç´ã«ã¤ãã¦èª¬æããã¦ãããä¸æå¶ç´ã® shared example ã®å®è£ æ¹æ³ã示ããã¦ãã¾ããã¾ããå®è£ ã«ãã£ã¦å±æ§ãä¸æã«ãªããã¨â¦
Rails Tips ã® 3 åç®ã§ã¯ãmodel ã®ãã¹ããç°¡åã«æ¸ãããã® shared_example ã®ç´¹ä»ãããã¾ããä¸æå¶ç´ã® shared_example ã§ã¯ãå±æ§ã®å¤ãä¸æã§ãããã¨ããã¹ããã¾ããå ·ä½çãªå®è£ æ¹æ³ã示ããã¦ãã¾ãã(by Notion AI)