你所做的很好,pluck(:rel)
总是会返回一个数组。如果你知道你只想要一个rel,那就做
event_rel = current_user.events(:e, :rel).where(id: event_id).limit(1).pluck(:rel).first
如果您使用的是来自 github 的 master 分支,则可以使用first_rel_to
方法,该方法(连同match_to
)正在改变我最近使用 gem 的方式。
event_rel = current_user.events.first_rel_to(event_id)
给它一个 ID 的功能是在几天前添加的,如果你从 Rubygems 中提取它就行不通了。3.0.4 中的方法版本不接受 ID,它只接受完整节点。如果你碰巧加载了节点,你可以event_rel = current_user.events.first_rel_to(event)
在发布的版本中进行。
如果您不想使用 pluck,您可以使用event_rel = current_user.events.where(id: event_id).
limit(1).each_rel.first
. 请注意,如果您省略 ,这会将这两个节点之间的每个 rel 都返回给 Ruby limit(1)
,所以除非您知道您只会得到一个,否则不要使用它。当我这样做时,我通常会添加limit(1)
,即使我只认为我会得到一个 rel 回来,因为我喜欢安全。
我建议您将 Gemfile 指向 Github 中的最新提交,只需阅读 wiki 中有关 4.0 更改的新部分。它很稳定,新功能也很酷。