登録不要でメールアドレスを使ってトピックをウォッチする

コードをじっくり調べてみました。ユーザーがメールだけで返信できるようにするには、次のようなもの(注意:まだ試していないので、おそらく動作しません)が機能すると思います。何かコメントがあれば幸いです。

特に、ステージングされたユーザーを作成する最良の方法かどうかはわかりません。ステージングされたユーザーを具体的に作成する方法は見つかりませんでした。

class SomePluginController < ApplicationController

  # データベースにステージングされたユーザーがいることを確認する
  def ensure_user

    # ステージングされたユーザーが存在するか確認する
    user = User.where(staged: true).with_email(params[:email].strip.downcase).first

    # ステージングされたユーザーを手動で作成する
    if !user
      user = User.new
      user.staged = true
      user.email = params[:email]
      user.active = false
      user.save!
    end
    
    user
  end

  # ステージングされたユーザーとしてトピックを監視する
  def staged_watch

    user = ensure_user

    topic = Topic.find(params[:topic_id].to_i)
    TopicUser.change(user, topic.id, notification_level: params[:notification_level].to_i)

  end

  # ステージングされたユーザーとしてトピックに返信する
  def staged_reply
 
    user = ensure_user

    manager = NewPostManager.new(user,
                             raw: params[:body],
                             topic_id: params[:topic_id])
    result = manager.perform

  end

end
「いいね!」 3