rails 生成模型:错误

Posted

技术标签:

【中文标题】rails 生成模型:错误【英文标题】:rails generate model : Error 【发布时间】:2012-01-12 14:42:31 【问题描述】:

我是 ruby​​ on rails 的新手。我终于在 ubuntu 11 上成功安装了 rails 并使用“rails new myapp”创建了一个应用程序。

但是在使用“bundle exec rails generate model Comment user:string user_comment:text”生成模型时,我收到以下错误:

我不知道可能出了什么问题。

/home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in `autodetect': 找不到 javascript 运行时.有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::RuntimeUnavailable)
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs.rb:5:in `'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs.rb:4:in `'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/coffee-rails-3.1.1/lib/coffee-rails.rb:1:in `require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/coffee-rails-3.1.1/lib/coffee-rails.rb:1:in `'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
    来自 /home/pratuat/Documents/rails/railsdemo/config/application.rb:7:in `'
    来自/home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.3/lib/rails/commands.rb:21:in `require'
    来自 /home/pratuat/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.3/lib/rails/commands.rb:21:in `'
    来自脚本/rails:6:in `require'
    来自脚本/rails:6:in `'

【问题讨论】:

Rails 3.1 error - Could not find a JavaScript runtime? 的可能重复项 【参考方案1】:

https://github.com/sstephenson/execjs

您需要从该运行时列表中进行选择。我发现的最简单的是 therubyracer。将此添加到您的 Gemfile,然后执行 bundle install

gem "therubyracer"

之后你的模型生成器应该可以工作了。

【讨论】:

我还注意到您需要在 ubuntu 上安装 node.jsgem 'execjs' 如果您安装了 node.js,您不需要为新应用程序执行任何这些操作,因为它会被 rails 拾取为您的 javascript 运行时。

以上是关于rails 生成模型:错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 中为现有模型生成表单?

警告:不推荐使用常量 ::Fixnum 生成新模型时

Rails 不返回特定模型的生成 ID

Rails bin / rails生成模型导轨中止

如何生成属性名称,并在 Rails 模型中获取它们的值

在 Rails 中使用 user_id:integer 与 user:references 生成模型