source wrapper 的职责很简单,他负责将外部资源的介面转换给 Boxenn::Repository
使用。
在 Boxenn::Repository
总共用了三个 method :
find_by(hash)
Boxenn::Repositories::Factory
建成 entity。save(hash, hash)
destroy(hash)
范例的外部资源是使用 ActiveRecord 的 Model。
class Order < Boxenn::Repositories::SourceWrapper
param :source, default: -> { Models::Order } # 这边的 order 是 active record 的 model
def find_by(primary_keys)
source.find_by(primary_keys)
end
def save(primary_keys, attributes)
record = source.find_or_initialize_by(primary_keys)
record.assign_attributes(attributes)
record.save!
end
def destroy(primary_keys)
record = source.find_by(primary_keys)
record.destroy!
end
end
下一篇我们就可以简单地使用 Boxenn::Repository
来操作资料库,另外会介绍 Boxenn::Repositories::Query
,用来收敛复杂的 sql query。
>>: [想试试看JavaScript ] 阵列一些操作阵列好用的方法 some() every()
“I miss you deeply, unfathomably, senselessly, te...
本篇同步发布於Blog:[解题] LeetCode - 7 Reverse Integer 平台: ...
如何求解递回式 目前主要有三种方法来求解递回式(至今没有任何一个好的演算法可以有效地解决递回式) 代...
寻找舞台,除了写一份让人惊艳的履历,有时候更具临门一脚威力的,就是有力的推荐人。在徵才时,除了技术能...
Youtube 频道:https://www.youtube.com/c/kaochenlong ...