使用link_to删除Rails AJAX缺少模板错误

时间:2017-08-14 20:11:06

标签: jquery ruby-on-rails ajax

我正在尝试使用AJAX-ify来做类型应用,并且刚刚为我的create方法处理了这个问题(参见[here] [1])。现在delete方法正在运行,但我无法使用之前的解决方案(将remote: true从提交移动到form_for行),因为删除是通过{{1 }}

这是我的link_to行动:

tasks#index

我的 def index @create_task = Task.new @tasks = Task.all @one_time = Task.where(frequency: "OneTime", completed: false, user_id: current_user.id) @one_time_done = Task.where(frequency: "OneTime", completed: true, user_id: current_user.id) @daily = Task.where(frequency: "Daily", completed: false, user_id: current_user.id) @daily_done = Task.where(frequency: "Daily", completed: true, user_id: current_user.id) @weekly = Task.where(frequency: "Weekly", completed: false, user_id: current_user.id) @weekly_done = Task.where(frequency: "Weekly", completed: true, user_id: current_user.id) @monthly = Task.where(frequency: "Monthly", completed: false, user_id: current_user.id) @monthly_done = Task.where(frequency: "Monthly", completed: true, user_id: current_user.id) end 行动:

tasks#destroy

这是我的删除 def destroy @one_time = Task.where(frequency: "OneTime", completed: false, user_id: current_user.id) @one_time_done = Task.where(frequency: "OneTime", completed: true, user_id: current_user.id) @daily = Task.where(frequency: "Daily", completed: false, user_id: current_user.id) @daily_done = Task.where(frequency: "Daily", completed: true, user_id: current_user.id) @weekly = Task.where(frequency: "Weekly", completed: false, user_id: current_user.id) @weekly_done = Task.where(frequency: "Weekly", completed: true, user_id: current_user.id) @monthly = Task.where(frequency: "Monthly", completed: false, user_id: current_user.id) @monthly_done = Task.where(frequency: "Monthly", completed: true, user_id: current_user.id) if @task.destroy respond_to do |format| format.js format.html end else flash[:warning] = "Oops! Something went wrong!" end end [1]: https://stackoverflow.com/questions/45667684/ajax-with-rails-missing-template (来自部分):

link_to

<%= link_to task_path(task), method: :delete, remote: true do %> <i class="icon ion-close-circled" id=(task.id + "task") style="margin-left: 5px"></i> <% end %> 上呈现,如此:

tasks/index.html.erb

这是我的<div id="onetime-todo"><%= render partial: 'items', locals: { task: @one_time } %></div>

delete.js.erb

最后我烦躁的服务器日志:

$("#onetime-todo").html("<%= escape_javascript(render partial: 'items', locals: { task: @one_time }) %>")
$("#onetime-done").html("<%= escape_javascript(render partial: 'done', locals: { task: @one_time_done }) %>")

$("#daily-todo").html("<%= escape_javascript(render partial: 'items', locals: { task: @daily }) %>")
$("#daily-done").html("<%= escape_javascript(render partial: 'done', locals: { task: @daily_done }) %>")

$("#weekly-todo").html("<%= escape_javascript(render partial: 'items', locals: { task: @weekly }) %>")
$("#weekly-done").html("<%= escape_javascript(render partial: 'done', locals: { task: @weekly_done }) %>")

$("#monthly-todo").html("<%= escape_javascript(render partial: 'items', locals: { task: @monthly }) %>")
$("#monthly-done").html("<%= escape_javascript(render partial: 'done', locals: { task: @monthly_done }) %>")

令我困扰的是,每个方法都会出现此错误。删除确实发生,它只需要刷新出现在页面上。有人看到这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

您希望delete.js.erbdestroy.js.erb,因为操作为destroy,而非delete