如何在 ajax 响应轨道上添加 javascript



我正在尝试添加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 远程 => true。但我不确定我做错了什么。

目前还不清楚你在这里问什么,但是如果你想让 Rails 用 javascript(rails 的一个非常强大的特性)来回应,在上面的例子中添加类似的东西:

format.js { render 'create' }

然后将 create.js.erb 文件放在相应的文件夹中。(可能是"角色")。在这里,你可以在rails的帮助下使用javascript/jquery更新你的dom等。优点是您可以访问所有助手和部分!

最新更新