カスタムの友情モデルを作成したほうがいいですか、それともamistadを実装する必要がありますか?Amisadの場合、問題はありますか。必ずしも機能しない機能が好きですか?
2 に答える
それは、達成しようとしている機能に大きく依存します。
率直に言って、Amistad のような gem は通常、多くの時間を節約することにはなりません。特に Gem を拡張する必要がある場合はなおさらです。私だったら、フレンド機能のウィッシュ リストをスケッチし、Amistad が実質的な基盤を提供できるかどうかを確認します (たとえば、作業の 90% を私に代わって行う)。ほとんどの場合、独自のソリューションを導入する方がよいでしょう。そうすれば、そもそもテーブルにそれほど多くをもたらさない宝石によって制限されることは決してありません.
私はここで初めて Amistad を使用していますが、それは素晴らしいと思います。とても最小限です... 「車輪を再発明しないでください」という本能も鳴ります。なぜゼロから構築するのですか? 男が以前にこれを行った場合、実装全体をチェックしたくありません! :P また、貢献などのためにドアを開いたままにします...
そのため、Amistad の機能を拡張したい、より正確には、招待時にメールボックス通知を作成したいという点に到達し、Null Object Pattern で発見した、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
これで必要なものがすべて解決できるかどうかはわかりませんが、時間を節約できます。