アクティビティフィードを再設計しているところです。すでにredisとrailsを使用してロジックを実装しています(ちなみにうまく機能します)が、イベントを作成/トリガーする方法がまだわかりません。
私の最初のアプローチでは、current_userを使用できないという欠点があるオブザーバーを使用しました。そして、オブザーバーを使用することはとにかく悪い考えです:)
私の好みの方法は、コントローラーでイベントを作成/トリガーすることです。これは次のようになります。
class UserController < LocationController
def invite
...
if user.save
trigger! UserInvitedEvent, {creator: current_user, ...}, :create
....
end
end
end
トリガーメソッドは
- いくつかのパラメータを使用してUserInvitedEventを作成します。(:createをデフォルトオプションにすることができます)
- 非アクティブ化される可能性があります(たとえば、テストのために非アクティブ化)
- たとえばresqueで実行できます
私はいくつかの宝石(fnordmetrics、...)を調べましたが、そのための洗練された実装を見つけることができませんでした。