フォームの送信後に現在のページの上に作成したパーシャルをレンダリングしようとしています。これはコントローラーの create メソッドで発生するはずですが、これが Ruby で実行できるのか、それとも Javascript を使用してレンダリングするだけなのかがわかりません。
これが私がこれまでに試したことです:
- new.html.erb と同じフォルダーにパーシャルを作成しました (_lightbox.html.erb と呼ばれます)
- コントローラーのレンダリングは次のように変更されました。
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
BackgroundJob.perform_async(@user.id)
format.html { render :partial=>"lightbox", :layout=>false}
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
私はレンダリングを読みましたが、:partial キーを使用すると、単に新しいページにパーシャルがレンダリングされます。おそらく、フォームを :remote を使用するように変更し、ライトボックス風のコンテンツを追加して ajax を成功させる必要がありますが、レンダリング機能を備えた Ruby on Rails でこれを実行できるかどうかに興味がありました。