我已经阅读了本教程的大部分内容,并且已经了解了添加删除文章功能的部分:
https://guides.rubyonrails.org/getting_started.html
...但只要点击“删除”链接,文章就不会被删除。没有任何反应,发送的是 GET 请求而不是 DELETE。
从 erb 文件:
<%= link_to 'Destroy', article_path(@article), data:{
turbo_method: :delete,
turbo_confirm: 'Are you sure?'
} %>
从控制器:
def destroy
@article = Article.find(params[:id])
@article.destroy
redirect_to root_path, status: :see_other
end
在尝试了 SO 和各种网页中提到的解决方案之后(将以下内容添加到我的“application.html.erb”文件中:
<%= javascript_include_tag 'application', "data-turbo-track": "reload" %>
...我收到此错误:
ActionView::Template::Error (The asset "application.js" is not present in the asset pipeline.
我做了一些挖掘并意识到应用程序脚手架(rails new blog
在这种情况下)没有创建任何 Javascript 目录,更不用说向它们添加任何 JS 文件了。我可以自己添加它们,但我什至不知道 Rails 和/或 Turbo 正在寻找什么 JS 文件。查询?其他图书馆?
但是,理想情况下,我想知道如何正确构建应用程序,以便包含任何必要的 Javascript。
谢谢,布莱恩
编辑 我能够通过使用“非涡轮”删除项目的方法和使用“button_to”而不是“link_to”作为“删除”链接来获得删除功能。但是——我仍然想知道为什么教程中显示的应用程序不能按预期工作,以及如何使用链接而不是按钮来触发项目删除(更不用说为什么使用 turbo 不起作用)。