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,但如果我只是创建一个并放置 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 回答