ユーザーが友だちを招待する機能を追加したいと思います。レールに「友人を招待」するのに役立つプラグインや宝石はありますか?
誰かがリンクをクリックして登録すると、その人は自動的に友人になるように電子メールを生成する必要があります。
オプションが何であるかはわかりませんが、最初から構築する代わりに、いくつかのアイデアや戦略が必要でした。
ユーザーが友だちを招待する機能を追加したいと思います。レールに「友人を招待」するのに役立つプラグインや宝石はありますか?
誰かがリンクをクリックして登録すると、その人は自動的に友人になるように電子メールを生成する必要があります。
オプションが何であるかはわかりませんが、最初から構築する代わりに、いくつかのアイデアや戦略が必要でした。
これをサポートするための宝石についてはわかりませんが、解決策はほんの些細なものでなければなりません。私はあなたが友情モデルが必要だと思う、あなたは 'waiting_for_approvment'のようなそれにいくつかのステータスを配置し、その友情モデルIDとのメールリンクで送信することができます。ユーザーがいずれかの方法を受け入れると、ステータスを「承認済み」に変更するか、「却下済み」に変更するだけです。
を使用しています。友達にして友情モデルに固有のリンクを生成する必要があります..... acts_as_inviteableタイプのソリューションが必要なようです – Angela
私はプロセス全体を処理する宝石(ユーザー>>電子メール>>サインアップ)は認識していません。あなただけは、ユーザーが特定のリンクから来るときの関係を作るために探している場合は、特別招待ルートを作成します(個別のコントローラが必要ではありませんが、ちょうどそれを明確にするために):
# routes.rb
match '/invite/:friend_id' => 'public#invite', :as => :invite
# PublicController
def invite
session[:referring_friend] = params[:friend_id]
redirect_to root_path
end
# UsersController
def create
@user = User.new(params[:user])
if @user.save
@user.create_friendship(session[:referring_friend]) if session[:referring_friend]
...
else
...
end
end
の場合あなたは、私がリンクモデルを作成し、それをクリックしてサインアップを追跡するために使用することをお勧めしたい、コンバージョン指標を追跡する:あなたが道を追跡したいと思うものに依存選ぶ方法
class Link < ActiveRecord::Base
belongs_to :user
attr_accessible :user, :user_id, :clicks, :conversions
def click!
self.class.increment_count(:clicks, self.id)
end
def convert!
self.class.increment_count(:conversions, self.id)
end
end
# routes.rb
match '/invite/:link_id' => 'links#hit', :as => :invite
# LinksController
def hit
link = Link.find(params[:link_id])
link.click!
session[:referring_link_id] = link.id
redirect_to root_path # or whatever path (maybe provided by link...)
end
# UsersController
def create
@user = User.new(params[:user])
if @user.save
if session[:referring_link_id]
link = Link.find(session[:referring_link_id])
link.convert!
@user.create_friendship(link.user_id)
end
...
else
...
end
end
。
ありがとう---私は、電子メールとサインアップの部分を少なくともした電子メールを望んでいました...私はどこにこの電子メールを入れますか? – Angela
あなたはuser.rbでafter_createコールバックを使用して、ユーザーのウェルカムメールを送信します。友情が作成されたときに電子メールを送信する場合は、友情モデルにafter_createコールバックを追加するだけです。友人関係モデルを構築するのではなく、単にリファラーへの参照を保持するのであれば、create_friendship()メソッドでメールを送信するだけです。 – mnelson
このシナリオでは、工夫の上で招待できますか? – Angela
レール用の宝石はありません。しかし、レールベースの電子商取引プロジェクトであるSpreeの拡張があります。おそらくあなたはそれがどのように実装されているか参照することができます&をチェックしてください。
スタートの関係を定義することによって:
class User < ActiveRecord::Base
has_and_belongs_to_many :friends, :class_name => "User", :join_table => "friends_users"
end
だから本当に、ユーザーは別の名前で自分自身にも関します。次に、あなたのコントローラに何かを使うことができます:
@current_user.friends << @selected_user
どの認証宝石を使用していますか?その中には、招待状を処理するための機能やプラグインが組み込まれているものがあります。 – vonconrad
ああ、どちらか?私は使用していると思っていますが、通常はauthlogic – Angela