rya*_*yan 18 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我创建了一个简洁的Rails 3.1应用程序,名为demo1.它包含两个控制器 - 你好和再见.当我尝试加载http:// localhost:3000/say/hello时出现以下错误:
ActionView::Template::Error (
(in /home/me/dev/ruby/demo1/app/assets/javascripts/say.js.coffee)):
3: <head>
4: <title>Demo1</title>
5: <%= stylesheet_link_tag "application" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
9: <body>
app/views/layouts/application.html.erb:6:in
`_app_views_layouts_application_html_erb___558576499_89622220'
Run Code Online (Sandbox Code Playgroud)
application.html.erb的问题在于:
<%= javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
当我使用Rails 3.0创建应用程序时,这个特定的行是:
<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)
这很好用.事实上,当我将application.html.erb更改为使用时:defaults一切正常,但我想使用Rails 3.1的新功能.
我似乎无法在谷歌周围发现任何事情,我想因为Rails 3.1刚刚发布.
顺便说一下,我正在关注使用Rails的Agile Web开发的第一章(第4版)更新为Rails 3.1书.
一些环境信息可能有助于回答这个问题:
$ cat /etc/issue
Ubuntu 10.04.2 LTS \n \l
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
$ rails -v
Rails 3.1.0
Run Code Online (Sandbox Code Playgroud)
在内容say.js.coffee文件:
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
Run Code Online (Sandbox Code Playgroud)
rya*_*yan 33
好的,我已经弄清楚问题是什么,所以我会回答我自己的问题.
问题是app/assets/javascripts/application.js文件包含注释掉的代码.但是,其中一条注释掉的内容如下:
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
当我删除这一行时,一切正常.
希望这可以帮助.如果有人可以提供一些见解,说明为什么下划线导致问题会很棒.
我刚开始使用新的RoR 3.2.1应用程序时遇到了这个问题.问题是你缺少一个JS运行时,这是因为该行
# gem 'therubyracer'
Run Code Online (Sandbox Code Playgroud)
你的Gemfile中有#在它前面.上帝只知道为什么他们发送Rails并注释该行,因为任何使用generate scaffold或类似的教程都会导致资产编译过程绊倒生成的coffeescript文件.
解决方案是取消注释该行.安装另一个JS运行时也可以解决问题.请参阅例如ExecJS,但找不到JavaScript运行时.
将CoffeeScript编译为JavaScript需要一个JavaScript运行时,缺少运行时会给你一个execjs错误.通常,Mac OS X和Windows都安装了JavaScript运行时.Rails在一个注释行中为新应用添加了therubyracer gem到Gemfile,如果需要,你可以取消注释.therubyrhino是JRuby用户的推荐运行时,默认情况下添加到JRuby下生成的应用程序中的Gemfile.您可以在ExecJS上调查所有支持的运行时.
| 归档时间: |
|
| 查看次数: |
27064 次 |
| 最近记录: |