0. ã¯ããã« Qiitawã¯ããããã¾ãã¾ãªã¨ããã§Railsã®ActiveRecordã®å é¨çµåãå¤é¨çµåã«é¢ããè¨äºãããã¾ãããããããã¾ã¨ã¾ã£ã¦åå¨ãã¦ããã¨è¯ããªãã¡ã¬ã³ã¹ã¨ãªãã®ã§ã¯ãªããã¨æãæ¬è¨äºã使ãã¾ããã ã¾ããRails5ã§åä½ç¢ºèªãã¦ãããªãããRails5ãã追å ãããleft_outer_joinsãªã©ã¯è¼ãã¦ã¾ãããä»å¾ãè¼ãã¦ããããã¨æãã¾ãã group byããµãã¯ã¨ãªï¼å¯åãåããï¼ã«é¢ãã¦ã¯ä¸è¨ããåç §ãã ããã ActiveRecordã«ãããGROUP BYã®ä½¿ãæ¹ ActiveRecordã§ãµãã¯ã¨ãªï¼å¯åãåããï¼ã¨å é¨çµå 0-1. Rubyã¨Railsã¨PostgreSQLã®ãã¼ã¸ã§ã³ $ ruby -v ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15] $
ã§ã«ã©ã ã®åé¤ããããã¨ããã¨ãå¤é¨ãã¼å¶ç´ã«å¼ã£ãããããåé¤ãã§ããªãã ãã«ã©ã å:referencesããå¾å°¾ã«ã¤ããã¨ãremove_reference 㨠remove_foreign_key ãèªåä»ä¸ãããã®ã§è¯ãã $ rails generate migration remove_ã«ã©ã å_from_ãã¼ãã«å ã«ã©ã å:references $ rails g migration remove_content_from_item content:references class RemoveContentIdFromItem < ActiveRecord::Migration def change remove_reference :items, :content, index: true remove_foreign_key :items, :contents en
èæ¯ railsã§ã¯rails g scaffoldãªã©ã§Modelã使ããã°ã èªåçã«idãä»ä¸ããã¾ãã ãããprimary_keyã§auto_incrementã§ãã¤indexãå¼µãããã®ã§ã æ®æ®µã¯idãæ°ã«ããå¿ è¦ã¯ããã¾ããã railsã使ããèªåã§ãã¼ã¿æ§é ãæ±ºããå ´åã¯railsã®æµåã«åã£ãæ¹ã楽ã§ãåé¡ãèµ·ããã¾ããã ããããå¤ããã¼ã¿ãæ´»ç¨ããå ´åãæµåã«ããããªãäºãããå¾ã¾ãã ä»åã¯è¦ç´ã«æ²¿ããªãå ´åã®å¯¾å¿ã«ã¤ãã¦å¤§ããåãã¦2ã¤ã®å ´åã«ã¤ãã¦èª¬æãã¾ãã ãªãç°å¢ã¯ä»¥ä¸ã®ç©ã§æ¤è¨¼ãã¦ãã¾ãã ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0] Rails 4.0.0 composite_primary_keys (6.0.0) 主ãã¼ãidã§ã¯ãªã 主ãã¼ãidã§ã¯ãªãå ´å
begin ActiveRecord::Base.transaction do . . raise 'ãã¼ã«ããã¯ãã¾ã' end p 'ã³ããã' # ãã©ã³ã¶ã¯ã·ã§ã³å¦çãç¢ºå® rescue => e p 'ãã¼ã«ããã¯' # ãã©ã³ã¶ã¯ã·ã§ã³å¦çãæ»ã end transactionãããã¯ã®ä¸ã§ç»é²ã»æ´æ°å¦çãè¡ãå ´åã¯ãsaveãupdateã§ã¯ãªããsave!, update!ã使ç¨ããã transactionãããã¯ã®ä¸ã§è¤æ°ã®ã¢ãã«ã®æ´æ°ãè¡ã£ãå¾ã«ä¾å¤ãçºçãããã¨ãå ¨é¨ã®ã¢ãã«ããã¼ã«ããã¯ããã æ¥½è¦³çãã㯠ãç«¶åã¯å¤åèµ·ããªãã ãããã¨ããåæã§ããã¼ã¿ã®å徿ã«ã¯ä½ããããæ´æ°æã«ç«¶åããã§ãã¯ããæ¹æ³ã ã¬ã³ã¼ãã®ãã¼ã¸ã§ã³ç®¡çãè¡ãããããã¼ãã«ã«lock_versionã«ã©ã ã追å ããããã®éãããã©ã«ãå¤ã0ã«ããã lock_versionã¯ã¬ã³ã¼ã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}