我最好建立自定义友谊模型,还是应该实施amistad?如果Amisad,它有任何问题。喜欢不一定有用的功能?
答案 0 :(得分:2)
这实际上取决于您尝试实现的功能。
坦率地说,像Amistad这样的宝石通常不会为你节省很多时间,特别是如果你最终需要扩展Gem。如果是我,我会勾勒出朋友特征的愿望清单,看看Amistad是否可以提供实质性的基础(比如,为我做90%的工作)。在大多数情况下,您可能最好还是自行推出自己的解决方案。这样一来,你永远不会受到宝石的限制,而宝石首先不会带来那么多的东西。
答案 1 :(得分:1)
我第一次在这里使用Amistad,我认为它很甜,它是如此微小......“不要重新转动轮子”本能环,为什么要从头开始构建它?如果一个家伙以前已经这样做了,我不想检查我的整个实施! :P它还为开放贡献等等敞开大门......
所以,我达到了我想要扩展Amistad功能的程度,更确切地说,在邀请时创建邮箱通知,我遵循了Null Object Pattern for associations in Rails
中发现的一个漂亮的小模式基本上:
class Profile < ActiveRecord::Base
include Amistad::FriendModel
module AmistadExtension
def invite(user)
p "works!"
super
end
include AmistadExtension
end
现在在rails c
:
> p = Profile.first
> p.invite p # this returns false because it's sending friend request to itself
"works!"
false
不知道这是否可以解决我需要的所有问题,但这节省了我的时间。