目前几个项目都用了 LiveView
Khan Academy Kids 确实好用,奈何小朋友已经被塞尔达吸引了。
我还遇到过网易邮箱 IMAP 的问题。。。
rswag
是挺好用,最近写的项目用了。但是为了用它,不得不换成 rspec
, 基于 minitest
的好像都不太成熟。
多年没见楼主了,先支持一个。
ruby-install
ruby-install ruby 2.5.3 -- --with-jemalloc
TextQL 确实很好用,省了很多事。
已经有几年没弄了,工作生活总是有各种需要牵挂的。看到这张老照片不禁唏嘘,时间真快,有三个已经进入了一家公司成为了同事。
说多了都是泪
力挺楼主,加油。
一直用 devdocs.io 的离线模式。
感觉会要来一波高质量帖子了。
关注用 Elixir 的公司,另外直接把公司 logo 和 Elixir 的 logo 放到一起这样好吗?
#15 楼 @Insub 我们之前的做法是增加了一个 position 字段,每次插入新的节点或者移动位置的时候都会计算出一个合理的 position 出来。以下代码仅供参考:
module Positionable
extend ActiveSupport::Concern
DEFAULT_POSITION = 65536
DEFAULT_POSITION_STEP = 128
included do
def update_position(params)
if params[:parent_id].present? && params[:parent_type].present?
return init_position
end
if params[:previous_id].present? && params[:previous_type].present?
return reposition(params[:previous_id], params[:previous_type])
end
end
def init_position
a = sibling_activities.minimum(:position)
b = sibling_wbs_elements.minimum(:position)
min_position = [a, b].compact.min
position = min_position ? min_position/2 : DEFAULT_POSITION
update(position: position)
end
def reposition(previous_id, previous_type)
previous_position =
case previous_type
when WbsElement::TYPE
WbsElement.find(previous_id).position
when Activity::TYPE
Activity.find(previous_id).position
end
update(position: new_position(previous_position)) if previous_position.present?
end
def new_position(position)
wbs_element_positions = sibling_wbs_elements.pluck(:position)
activity_positions = sibling_activities.pluck(:position)
positions = wbs_element_positions.concat(activity_positions).sort
next_position = positions.bsearch { |p| p > position }
next_position ? (position + next_position)/2 : position + DEFAULT_POSITION_STEP
end
end
end
因为我们当初实现这颗树的时候挂的是两种不同类型的 model, 所以代码优点复杂,实际上使用多态用一种 model 来表示你的节点 ( Project, Folder, Article) 会要简单很多。 另外,单纯的往树上特定位置增加节点,这些 gem 都很方便吧。我们之所以要计算 position 是因为这个树会需要频繁调整,任意一个节点和子节点都可以调整到任意位置,同时又有严格的顺序要求。closure_tree 的好处是树形关系是由 gem 维护在另外的表中。移动位置不会造成大量 SQL。
我感觉用 whenever 就够了。
推荐使用 closure_tree, 我们之前也有类似需求。节点用多态指向你的 Folder / Article / Report
还是觉得 Actor 这种模型要更优秀。
厉害
已经在刷了
顶,看过之前的视频,不错的说。 @tony612 这一期也会录的吧?