0

約 5 つのパーシャルに分割したい非常に長いフォームがあります。ユーザーが各パーシャルの下部にある「次へ」をクリックすると、最後のパーシャルがフォーム全体をデータベースに送信するまで、AJAX を使用して次のパーシャルをロードします。また、ユーザーが「前へ」をクリックした場合、ユーザーが以前に入力した内容をフィールドに入力する必要があります。

これまでのところ、これは機能していません:

users/new.html.erb

<%= form_for(@user, :html => { :class => "form-horizontal" }, remote: true) do |f| %>
...
<%= f.submit "Next" %>

users_controller.rb

  def create
    @user = User.new(params[:user])
    if @user.save
      respond_to do |format|
        format.html { flash[:success] = "Welcome to Friends First!"
                  redirect_to @user }
        format.js
      end
    else
      render :new
    end
  end

create.js.erb

$("#site_content").html("<%= escape_javascript(render('layouts/partial2')) %>");
4

1 に答える 1

0

5 つの部分のそれぞれを個別の div (表示: なし) に配置し、最初の部分のみを表示 (表示: ブロック) します。ユーザーが「次へ」をクリックすると、2番目などを表示します。作成アクションへの最終的な送信は、jqueryを介して行うこともできます

$.ajax(
  url: '/users',
  type: 'post',
  data: $("form").serialize()
)

それが役立つことを願っています。

于 2013-01-07T09:04:38.247 に答える