0

Ajax を追加しようとしていますが、これまでのところ JavaScript 応答を追加できますが、テンプレートを追加できません。

ここに私のjavascript

アプリケーション.js

$("#new_role").on("ajax:success", function (e, data, status, xhr) 
{
    $("#newRoleForm").hide(1000);
    return;
}).bind("ajax:error", function (e, xhr, status, error) 
{
    return alert("Error");
});

ここに私のコントローラー

  def create
    @role = Role.new(params[:role])

    respond_to do |format|
      if @role.save
        format.html { redirect_to roles_path, notice: 'Role was successfully created.' }
        format.json { render json: @role, status: :created, location: @role }
      else
        format.html { render action: "new" }
        format.json { render json: @role.errors, status: :unprocessable_entity }
      end
    end
  end

create.js.erb を追加する必要があるというコメントがたくさんありますが、1 つだけ作成して alert(...); を配置すると、それは実行されます。フォームを ajax remote => true に変更しました。しかし、私は何が間違っているのかわかりません。

4

1 に答える 1

3

あなたがここで何を求めているかは明確ではありませんが、Rails に javascript (Rails の非常に強力な機能) で応答させたい場合は、上記の例に次のようなものを追加します。

format.js { render 'create' }

次に、create.js.erb ファイルを適切なフォルダーに配置します。(おそらく「役割」)。ここでは、Rails の助けを借りて javascript/jquery を使用して dom などを更新できます。利点は、すべてのヘルパーとパーシャルにアクセスできることです!

于 2013-10-22T02:33:15.233 に答える