Rails,default.js为空,并且未加载jquery和jquery_ujs

时间:2015-06-15 16:25:17

标签: jquery ruby-on-rails ruby ruby-on-rails-4 rubygems

我正在使用rails guides在轨道上练习红宝石。在5.13 Deleting Articles部分中,他们展示了如何创建删除(销毁)功能。我正确地执行了步骤,但未显示删除确认对话框,并且文章未被删除。 当我检查chrome开发人员工具时," jquery"和" jquery_ujs"不包括在内," default.js"是空的。 我在Windows 7上的rails上运行ruby。

这是我的文章控制器,

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创建此删除/销毁功能。

编辑:我没有编辑任何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部分已经完成。这就是列出的文章和链接到&#34;显示&#34;,&#34;编辑&#34;和&#34; destory&#34;看去。

Listing Articles

当我检查第一个销毁(删除)链接的来源时,它看起来像这样:<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/articles/1">Destroy</a>

但是当我点击它时,它没有显示任何确认对话框,浏览器跳转到http://localhost:3000/articles/1,文章也没有被删除。

1 个答案:

答案 0 :(得分:1)

一切都在你的身边。你说你在Windows 7上,当我因某些原因需要在Windows上运行rails时,我也遇到过这个问题。比我找到答案here帮我摆脱了这个问题。实际上,coffee-script-source,v 1.9.x在windows上出现问题,所以如果你使用v 1.8.0,这个问题就会消失。

包含在您的Gemfile [MessageContract] public class UploadStreamMessage { [MessageHeader] public string fileName; [MessageBodyMember] public Stream fileContents; }

而不是gem 'coffee-script-source', '1.8.0'