定制友谊模型还是Amistad宝石?

时间:2013-01-21 04:54:21

标签: ruby-on-rails ruby-on-rails-3

我最好建立自定义友谊模型,还是应该实施amistad?如果Amisad,它有任何问题。喜欢不一定有用的功能?

2 个答案:

答案 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

不知道这是否可以解决我需要的所有问题,但这节省了我的时间。