Rails、default.js为空,jquery和jquery_ujs未加载
Rails, default.js is empty, and jquery and jquery_ujs not loaded
我正在 rails 上使用 rails guides. In the section 5.13 Deleting Articles 练习 ruby 他们展示了如何创建删除(销毁)功能。我正确地按照步骤操作,但没有显示删除确认对话框,文章也没有被删除。
当我检查 chrome 开发人员工具时, "jquery" 和 "jquery_ujs" 不包括在内并且 "default.js" 是空的。
我 运行 ruby rails windows 7.
这是我的文章控制器,
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
这是视图 (app/views/articles/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_path(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>
并且 this part of the tutorial 用于创建此 delete/destroy 功能。
编辑:我没有编辑任何js文件,因为上述教程并没有说此时要更改任何js文件,但正如评论中有人问的那样所以我添加了 js 文件,这就是 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_tree .
编辑 2:(根据@NitishParkar 的评论进行编辑)
当我遵循 Rails 指南时,当我到达 this point 时,文章控制器的 CRUD 部分已完成。这就是列出的文章和 link 到 "show"、"edit" 和 "destory" 的样子。
当我检查第一个销毁(删除)link 的源代码时,它看起来像这样:<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/articles/1">Destroy</a>
但是当我点击它时,它没有显示任何确认对话框并且浏览器跳转到http://localhost:3000/articles/1
并且文章没有被删除。
你这边一切正常。你说你在 Windows 7 上,我也有一次因为某些原因需要在 windows 上 运行 rails 时遇到这个问题。然后我找到了一个答案 here,它帮助我解决了这个问题。实际上 coffee-script-source,v 1.9.x 在 windows 上出现问题,所以如果你改用 v 1.8.0,这个问题就会消失。
包含在您的 Gemfile 中 gem 'coffee-script-source', '1.8.0'
比运行bundle update coffee-script-source
我正在 rails 上使用 rails guides. In the section 5.13 Deleting Articles 练习 ruby 他们展示了如何创建删除(销毁)功能。我正确地按照步骤操作,但没有显示删除确认对话框,文章也没有被删除。 当我检查 chrome 开发人员工具时, "jquery" 和 "jquery_ujs" 不包括在内并且 "default.js" 是空的。 我 运行 ruby rails windows 7.
这是我的文章控制器,
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
这是视图 (app/views/articles/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_path(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>
并且 this part of the tutorial 用于创建此 delete/destroy 功能。
编辑:我没有编辑任何js文件,因为上述教程并没有说此时要更改任何js文件,但正如评论中有人问的那样所以我添加了 js 文件,这就是 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_tree .
编辑 2:(根据@NitishParkar 的评论进行编辑)
当我遵循 Rails 指南时,当我到达 this point 时,文章控制器的 CRUD 部分已完成。这就是列出的文章和 link 到 "show"、"edit" 和 "destory" 的样子。
当我检查第一个销毁(删除)link 的源代码时,它看起来像这样:<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/articles/1">Destroy</a>
但是当我点击它时,它没有显示任何确认对话框并且浏览器跳转到http://localhost:3000/articles/1
并且文章没有被删除。
你这边一切正常。你说你在 Windows 7 上,我也有一次因为某些原因需要在 windows 上 运行 rails 时遇到这个问题。然后我找到了一个答案 here,它帮助我解决了这个问题。实际上 coffee-script-source,v 1.9.x 在 windows 上出现问题,所以如果你改用 v 1.8.0,这个问题就会消失。
包含在您的 Gemfile 中 gem 'coffee-script-source', '1.8.0'
比运行bundle update coffee-script-source