0

私の状況は次のとおりです。サイトへの訪問者が記入できるフォームがあります。もちろん、送信したい場合は、ユーザーである必要があります。そのため、「送信」をクリックすると、サインアップ/イン ページが表示されます。これは、元のフォームのデータを保存する前に「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 にアクセスしてデータを抽出し、データベースに保存するのかわかりません。ユーザーの作成後、間違いなく。しかし、それはユーザー モデルのコールバックである必要がありますか? どこに行くべきですか?

提案やアドバイスをいただければ幸いです。

4

1 に答える 1

1

:siteユーザーセッションに保存するのはどうですか?これはリクエスト間で持続し、手動で追跡する必要がないことを意味します。

于 2012-07-20T19:32:00.823 に答える