rails 命令在可挂载引擎根目录中不起作用

lux*_*ama 2 ruby ruby-on-rails rails-engines ruby-on-rails-3 ruby-on-rails-3.1

关于可安装在导轨上的发动机的问题。首先这些是我正在使用的版本;

$ rails -v
  Rails 3.2.1
$ ruby -v
  ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
Run Code Online (Sandbox Code Playgroud)

我用这个创建了可安装的引擎:

$ rails plugin new testEngine --mountable
  create  
  create  README.rdoc
  create  Rakefile
  create  testEngine.gtestEnginepec
  create  MIT-LICENSE
  create  .gitignore
  create  Gemfile
  create  app
  create  app/controllers/testEngine/application_controller.rb
  create  app/helpers/testEngine/application_helper.rb
  create  app/mailers
  create  app/models
  create  app/views/layouts/testEngine/application.html.erb
  create  app/assets/images/testEngine
  create  app/assets/images/testEngine/.gitkeep
  create  config/routes.rb
  create  lib/testEngine.rb
  create  lib/tasks/testEngine_tasks.rake
  create  lib/testEngine/version.rb
  create  lib/testEngine/engine.rb
  create  app/assets/stylesheets/testEngine/application.css
  create  app/assets/javascripts/testEngine/application.js
  create  script
  create  script/rails
  create  test/test_helper.rb
  create  test/testEngine_test.rb
  append  Rakefile
  create  test/integration/navigation_test.rb
  vendor_app  test/dummy

  run  bundle install
  Fetching source index for http://rubygtestEngine.org/
  Using rake (0.9.2.2) 
  Using i18n (0.6.0) 
  Using multi_json (1.1.0) 
  Using activesupport (3.2.1) 
  Using builder (3.0.0) 
  Using activemodel (3.2.1) 
  Using erubis (2.7.0) 
  Using journey (1.0.3) 
  Using rack (1.4.1) 
  Using rack-cache (1.1) 
  Using rack-test (0.6.1) 
  Using hike (1.2.1) 
  Using tilt (1.3.3) 
  Using sprockets (2.1.2) 
  Using actionpack (3.2.1) 
  Using mime-types (1.17.2) 
  Using polyglot (0.3.3) 
  Using treetop (1.4.10) 
  Using mail (2.4.1) 
  Using actionmailer (3.2.1) 
  Using arel (3.0.2) 
  Using tzinfo (0.3.31) 
  Using activerecord (3.2.1) 
  Using activeresource (3.2.1) 
  Using bundler (1.0.22) 
  Using rack-ssl (1.3.2) 
  Using json (1.6.5) 
  Using rdoc (3.12) 
  Using thor (0.14.6) 
  Using railties (3.2.1) 
  Using rails (3.2.1) 
  Using testEngine (0.0.1) from source at /private/var/www/html/development/projects/testEngine
  Using jquery-rails (2.0.0) 
  Using sqlite3 (1.3.5) 
  Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Run Code Online (Sandbox Code Playgroud)

当我在引擎根目录中(而不是在 dummyapp 中)使用 rails 命令时,我收到以下错误:

$ rails -v
script/rails:7:in `require': no such file to load -- rails/all (LoadError)
from script/rails:7
Run Code Online (Sandbox Code Playgroud)

这是我在 script/rails 中的 rails 文件:

$ cat script/rails 
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.

ENGINE_ROOT = File.expand_path('../..', __FILE__)
ENGINE_PATH = File.expand_path('../../lib/ems/engine', __FILE__)

require 'rails/all'
require 'rails/engine/commands'
Run Code Online (Sandbox Code Playgroud)

该错误表明问题源于底部的两个导轨。我能做些什么来解决这个问题吗?如果无法使用 rails,我将无法使用 rails 命令提供的任何工具,例如脚手架等。

任何帮助表示赞赏,如果您需要更多信息,请告诉我。

Zub*_*bin 5

尝试这个:

script/rails console
Run Code Online (Sandbox Code Playgroud)

或者:

bundle exec rails console
Run Code Online (Sandbox Code Playgroud)

  • 可能是因为您路径中的 rails 二进制文件指向不同的(2.x?)版本。使用 `bundle exec` 确保使用 Gemfile 中的版本。 (2认同)