2

我已经阅读了本教程的大部分内容,并且已经了解了添加删除文章功能的部分:

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 不起作用)。

4

1 回答 1

0

所以我的回答是没有答案——但我相信 mechnicov 说应用程序没有正确创建是正确的;我在 Linux 中重新创建了该项目,一切都按预期工作。显然我在 Windows 中的 Ruby/Rails 安装有问题。

于 2022-02-10T21:07:06.107 回答