gpt4 book ai didi

javascript - Rails Guides : Getting Started 5. 13 删除文章:不会出现确认对话框

转载 作者:行者123 更新时间:2023-12-03 08:53:32 25 4
gpt4 key购买 nike

我目前正在尝试让 Rails 在我的 Windows 7 计算机上运行,​​但遇到了困难。我对 Rails 非常陌生(通过使用入门指南推断)并且我陷入了困境:

http://guides.rubyonrails.org/getting_started.html#deleting-articles

具体来说,您猜对了,确认对话框。它永远不会出现,Rails 只是使用 SHOW 路线。

现在是代码:

应用\ Assets \javascripts\application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require jquery.ui.all
//= require_tree .

应用\ Controller \articles_controller.rb

class ArticlesController < ApplicationController
def index
@articles = Article.all
end

def show
@article = Article.find(params[:id])
end

def new
@article = Article.new
end

def edit
@article = Article.find(params[:id])
end

def create
@article = Article.new(article_params)

if @article.save
redirect_to @article
else
render 'new'
end
end

def update
@article = Article.find(params[:id])

if @article.update(article_params)
redirect_to @article
else
render 'edit'
end
end

def destroy
@article = Article.find(params[:id])
@article.destroy

redirect_to articles_path
end

private
def article_params
params.require(:article).permit(:title, :text)
end
end

应用程序\ View \文章\index.html.erb

<h1>Listing Articles</h1>
<%= link_to 'New article', new_article_path %>

<table>
<tr>
<th>Title</th>
<th>Text</th>
<th colspan="3"></th>
</tr>

<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= article.text %></td>
<td><%= link_to 'Show', article %></td>
<td><%= link_to 'Edit', edit_article_path(article) %></td>
<td><%= link_to 'Destroy', article_path(article),
method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>

和app\views\layouts\application.html.erb

<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
<%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'default', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

<!--%= javascript_include_tag 'application', 'data-turbolinks-track' => true %-->

现在在命令行中,当我单击“link_to”销毁链接时,我得到:

[2015-09-15 18:48:26] ERROR Errno::ECONNRESET: An existing connection was forcibly closed by the remote host. @ io_fillbuf - fd:10
C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:80:in 'eof?'
C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:80:in 'run'
C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/server.rb:295:in 'block in start_thread'
Rendered C:/...

请注意,之后一切看起来都正常:

Rendered C:/

为了自己解决这个问题,我有:

  • 确保 SQLite 在我的计算机上
  • SQLite gem 已安装
  • 我的网络浏览器(Opera;基于 Chrome )

我遵循了 Stack Exchange 和 Stack Overflow 提供的每一条建议,包括:

修改index.html.erb:

<%= link_to 'Destroy',  post,  method: :delete, data: { confirm: 'Are you sure?' } %>

或者:

link_to 'Cancel?', schedule_path(current_user.schedules[0]), :confirm => "are you sure?", :method => :delete

或者:

<td><%= link_to 'Destroy', { action: :destroy, id: post.id }, method: :delete, data: { confirm: 'Are you sure?' } %></td>

或者:

<td><%= link_to 'Destroy', [comment.post, comment], method: :delete, data: { confirm: 'Are you sure?' } %></td>
  • 确保因为我使用的是 Windows 7,所以我的 CoffeeScript 是版本 1.8.0 并且我更新了 Gemfile
  • 确保 gem“jquery-rails”包含在 Gemfile 文件中
  • 使用方法:destroy 代替方法:delete
  • 我的佣金路线看起来应该是这样。一个答案提到确保bin/rake paths 返回了正常的结果,确实如此

确保 application.js 文件包含:

//= require jquery
//= require jquery_ujs

(你可以在上面看到它确实如此)

但没有任何效果,没有,没有任何效果。

我尝试过的唯一让我任何成功的方法是将index.html.erb中的link_to替换为button_to

但这不会产生确认窗口。它只是执行 DESTROY。

我很困惑,我花了很多时间试图让它发挥作用。

我从这些链接中找到了答案:

我可能缺少一些链接和答案,因此请随时将我链接到您认为我可能错过的主题。

感谢您阅读这大量文字墙,我希望我能尽快找到解决问题的方法。

最佳答案

我认为布局没有正确加载您的 JavaScript。

试试这个。希望对您有帮助!

app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

关于javascript - Rails Guides : Getting Started 5. 13 删除文章:不会出现确认对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32597205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com