2013-12-09 47 views
0

我一直在尝试几个小时来执行一个简单的控制台并在我的Rails应用程序中的JavaScript警告消息后,检查更复杂的JavaScript(咖啡)代码不起作用。我能够打印的东西的唯一方法是将代码放入application.js中。以下是我的应用程序的主文件:Rails不包括require_tree for javascript

的Gemfile

source 'https://rubygems.org' 

gem 'rails', '3.2.0' 

group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'jquery-rails', '3.0.4' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'mongo_mapper' 
gem 'haml', "~> 4.0.4" 
gem 'i18n', '~> 0.6.9' 

资产/ Java脚本/ application.js中

//= require jquery 
//= require jquery_ujs 
//= require_tree . 

资产/ Java脚本/ example.coffee

$(document).ready(function() { 
    console.log("pRUEBAEFADF") 
}); 

配置/application.rb

require File.expand_path('../boot', __FILE__) 

require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "sprockets/railtie" 
require "rails/test_unit/railtie" 

if defined?(Bundler) 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
end 

module HotelAbadi 
    class Application < Rails::Application 
    config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 
    config.i18n.default_locale = :es 

    config.encoding = "utf-8" 

    config.filter_parameters += [:password] 

    config.assets.enabled = true 
    config.assets.paths << "#{ Rails.root }/app/assets/fonts" 

    config.assets.version = '1.0' 
    end 
end 

配置/环境/ development.rb

HotelAbadi::Application.configure do 
    config.cache_classes = false 
    config.whiny_nils = true 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 
    config.action_mailer.raise_delivery_errors = false 
    config.active_support.deprecation = :log 
    config.action_dispatch.best_standards_support = :builtin 
    config.assets.compress = false 
    config.assets.debug = true 
    config.assets.compile = true 
    config.serve_static_assets = false 
end 

我也尝试手动添加文件,但它不执行任何东西。我无法找到更多关于这个问题的网页。提前致谢。

编辑:我已经将版本从3.2.0更新到3.2.15,并解决了问题。

+0

是的,当然。 – ReyLitch

+0

您的清单文件会加载'jquery'&'jquery_ujs'。你能确保适当的jquery文件正确加载?如果不是(丢失,不在路径中),您的coffeescript文件将不会被加载。 –

+0

问题出在rails的版本上。我一直在使用3.2.0,现在我已将它更新到3.2.15,并且问题突然解决。 – ReyLitch

回答

-2

添加'therubyracer'宝石很重要。

的资产组

gem 'therubyracer', :platforms => :ruby 

更多的信息在这里添加此行:https://github.com/cowboyd/therubyracer

+0

安装后,仍然无法正常工作。当我加载页面时,不打印任何东西。我改变了example.js的代码,现在它的名字是example.coffee,它使用了咖啡语法($(document).ready - > console.log“LOADED”)。 – ReyLitch

+0

如果他没有安装JS运行时,他的服务器甚至不会启动。 – sevenseacat

+0

你可以上传你的rails代码到github或某个地方吗? –

2

assets/javascripts/example.coffee不是CoffeeScript的,是的JavaScript。将该文件重命名为assets/javascripts/example.js或将代码转换为Coffeescript。此外,如果您想将其翻译为咖啡标记,则其名称应为assets/javascripts/example.js.coffee

+0

我已经尝试过,但仍然无法正常工作。我正在尝试Nelson的解决方案,但安装过程太慢(我不知道为什么)。它试图安装libv8(现在10分钟...)。 – ReyLitch