在Rails应用程序中使用jQuery/AJAX创建新记录时出现删除链接的问题

在Rails应用程序中使用jQuery/AJAX创建新记录时出现删除链接的问题,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我正在创建待办事项列表应用程序。用户通过类别拥有多个任务。我正在通过jQuery/ajax为每个类别创建新的任务记录,以改善用户体验。我在每个任务后都有一个delete链接,但是在通过ajax创建新记录时,delete链接不会显示出来。如果我重新加载页面,它就会出现。如何使删除链接显示在新记录上?我已尝试遵循此railscast,并对其进行了大部分设置,但无法显示删除链接: 以下是我的一些代码: class TasksController < ApplicationController

我正在创建待办事项列表应用程序。用户通过类别拥有多个任务。我正在通过jQuery/ajax为每个类别创建新的任务记录,以改善用户体验。我在每个任务后都有一个delete链接,但是在通过ajax创建新记录时,delete链接不会显示出来。如果我重新加载页面,它就会出现。如何使删除链接显示在新记录上?我已尝试遵循此railscast,并对其进行了大部分设置,但无法显示删除链接:

以下是我的一些代码:

class TasksController < ApplicationController
  def new
   @category = Category.find(params[:category_id])
   @task = @category.tasks.new
  end

  def create
    @category = Category.find(params[:category_id])
    @user = @category.user
    @task = @category.tasks.create(params[:task])
    respond_to do |format|
      format.html { 
       if @task.save
         redirect_to user_path(@user), notice: "Task created."
       else
         render 'new'
       end
    }
      format.js
    end
  end

  def destroy
    @category = Category.find(params[:category_id])
    @task = @category.tasks.find(params[:id])
    @user = @category.user
    @task.destroy
    redirect_to user_path(@user)
  end
end
谢谢

编辑

这是我的Rails链接代码:

<div class="category-<%= category.id %>-tasks">
    <% category.tasks.each do |task| %>
        <li class="task">
            <%= task.name if task %>
            <%= link_to "x", category_task_path(category, task), class: "delete-task pull-right", :method => :delete, :confirm => "Are you sure?" %>
        </li>
    <% end %>
</div>

  • :删除,:确认=>“确定吗?”%>
  • 对于每个任务,HTML应如下所示:

    <li class="task">Task<a href="/categories/1/tasks/27" class="delete-task pull-right" data-confirm="Are you sure?" data-method="delete" rel="nofollow">x</a>
    </li>
    
    任务
    从您的
    创建.js.erb
    文件:

    $('div.category-<%= @category.id if @category %>-tasks').append('<li class="<%= @task.id if @task %>"><%= j @task.name if @task %></li>');
    

    你能添加html应该是什么样子吗(一旦你刷新了页面)?在运行
    show()
    之前插入
    a.delete-task
    的位置和时间?我用HTML代码的样子编辑了这篇文章
    <div class="category-<%= category.id %>-tasks">
        <% category.tasks.each do |task| %>
            <li class="task">
                <%= task.name if task %>
                <%= link_to "x", category_task_path(category, task), class: "delete-task pull-right", :method => :delete, :confirm => "Are you sure?" %>
            </li>
        <% end %>
    </div>
    
    <li class="task">Task<a href="/categories/1/tasks/27" class="delete-task pull-right" data-confirm="Are you sure?" data-method="delete" rel="nofollow">x</a>
    </li>
    
    $('div.category-<%= @category.id if @category %>-tasks').append('<li class="<%= @task.id if @task %>"><%= j @task.name if @task %></li>');
    
    $('div.category-<%= @category.id if @category %>-tasks').append('<li class="<%= @task.id if @task %>"><%= j @task.name if @task %><%= link_to "x", category_task_path(category, task), class: "delete-task pull-right", :method => :delete, :confirm => "Are you sure?" %></li>');