私の状況は次のとおりです。サイトへの訪問者が記入できるフォームがあります。もちろん、送信したい場合は、ユーザーである必要があります。そのため、「送信」をクリックすると、サインアップ/イン ページが表示されます。これは、元のフォームのデータを保存する前に「user_id」が必要だからです。
私がやりたいのは、元のフォーム (params[:site]) からパラメーターを取得し、作成アクションでそれらを送信する代わりに、ユーザーがアカウントを作成するまで待ちたいということです。これにより、ユーザー ID なしでサイト情報をデータベースに保存することを回避できます。
このように、サイト/作成メソッドにコードを追加できます。
def create
@site = Site.new(params[:site])
unless current_user?
redirect_to new_user_session_path, sites_form_data: params[:site]
end
if @site.save
# ...
end
しかし、ユーザーにアカウントを作成してもらった後、params[:site] を取得する方法がわかりません。
私はこのプロジェクトに Devise を使用しているため、作業に支障をきたす可能性があります。この男のように、元のデバイスコントローラーを上書きする必要があるのではないかと思います。
データを Cookie に保存することもできると思います。しかし、いつその Cookie にアクセスしてデータを抽出し、データベースに保存するのかわかりません。ユーザーの作成後、間違いなく。しかし、それはユーザー モデルのコールバックである必要がありますか? どこに行くべきですか?
提案やアドバイスをいただければ幸いです。