我正在尝试使用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 }) %>")
令我困扰的是,每个方法都会出现此错误。删除确实发生,它只需要刷新出现在页面上。有人看到这里发生了什么吗?
答案 0 :(得分:2)
您希望delete.js.erb
为destroy.js.erb
,因为操作为destroy
,而非delete
。