ActiveRecord::Base是如何生成attributes_methods?關(guān)于這個(gè)問題相信看過《Ruby元編程》一書的伙伴能了解到從,rails1到3的介紹怖亭。但是肝箱,...
ActiveRecord::Base是如何生成attributes_methods?關(guān)于這個(gè)問題相信看過《Ruby元編程》一書的伙伴能了解到從,rails1到3的介紹怖亭。但是肝箱,...
active record 在create/update的時(shí)候會(huì)默認(rèn)更新created_at/updated_at字段為當(dāng)前字段,可以通過config.active_reco...
負(fù)責(zé)ActiveRecord::Base的association部分的實(shí)現(xiàn)绵载,也就是has_many, has_one等等埂陆。先看到我們平時(shí)用的has_many方法: 通過bui...
這個(gè)模塊想必大家都會(huì)很熟悉,在rails的基礎(chǔ)教程里負(fù)責(zé)password的加密和驗(yàn)證娃豹,主要就是給ActiveRecord::Base添加了password=焚虱、password...
ActiveRecord::AutosaveAssociation 這個(gè)模塊主要是負(fù)責(zé)自動(dòng)保存associated records當(dāng),它的parent保存的時(shí)候懂版。除此之外鹃栽,也...
根據(jù)ActiveRecord::Base里的繼承鏈向上閱讀 ActiveRecord::Suppressor 先是Suppressor,先看功能部分: 被suppress(抑...
ActiveRecord::NestedAttributes nest attributes的實(shí)現(xiàn)部分躯畴,也就是嵌套數(shù)據(jù)部分: 主要部分為module ClassMethods...
ActiveRecord::Transaction 實(shí)現(xiàn)transaction部分的功能民鼓。 暴露給我們的方法主要是在ClassMethods里: transaction: 在...
ActiveRecord::TouchLater 用了touch_later,來touch的話,會(huì)將touch延遲到別的語句執(zhí)行完之后在commit執(zhí)行蓬抄。
ActiveRecord::NoTouching 讓你有選擇性的可以禁用掉touch丰嘉,在no_touching的block內(nèi)∪络裕可以使用ActiveBase::Record.n...
首先饮亏,我們理解下Reflection的概念:反射:在計(jì)算機(jī)科學(xué)里,是指程序在運(yùn)行時(shí)阅爽,可以訪問路幸、檢測和修改它本身狀態(tài)或行為的一種能力。內(nèi)视糯病:內(nèi)嗜芭狻(或稱“自省”)機(jī)制僅指程序在運(yùn)...
用于在類里保存當(dāng)前線程的變量信息,也就是說一個(gè)類extend了PerThreadRegistry,那么這個(gè)類的變量將只在這個(gè)線程里共享胆敞。
這個(gè)方法已經(jīng)沒有了,在看rails5.1+的源碼里移层,但是還是記錄一下這些方法演變的過程仍翰。 alias_method_chain產(chǎn)生的原因 因?yàn)榻o原方法增加新功能的想法在Rai...
自動(dòng)加載機(jī)制 Active Record是Rails的ORM功能實(shí)現(xiàn)。上面代碼使用了ActiveSupport::Autoload模塊观话,該模塊定義了autoload方法予借。代碼...
require load autoload require 1.kernel method,可以加載ruby文件,也可以加載外部的庫灵迫。2.相比load ,針對同一個(gè)文件秦叛,它只...
railtie的configuration eager_load_namespaces: 需要提前加載的命名空間watchable_files: 需要被監(jiān)聽到改變的文件wat...
由于平時(shí)寫類的代碼比較多瀑粥,這里再復(fù)習(xí)一下模塊的知識(shí)點(diǎn): 模塊不能擁有實(shí)例 模塊不能被繼承 模塊的主要使用方式: 利用 Mix-in 擴(kuò)展功能 提供命名空間 模塊的方法:和類一...
set_load_path:添加config里的一些路徑到$LOAD_PATH并且uniq 設(shè)置好自動(dòng)加載的路徑和自動(dòng)加載一次的路徑,并且freeze防止被錯(cuò)誤修改. add...