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