アプリフォルダにいますが、コマンドRails s
が機能していません。 Stack Overflowに関するかなりの数の投稿を読みましたが、それらのほとんどは、アプリディレクトリにいないユーザーからのもののようです。
さらに、他にもいくつかのアプリを作成しました。それらを確認したところ、Railsサーバーはこれらすべてのアプリで機能します。これは、起動できない唯一のアプリです。
which Rails
の出力:
/Users/jmcrist/.rvm/gems/Ruby-2.0.0-p247/bin/Rails
Rails s
の出力:
MacBook-Pro:first_app jmcrist$ Rails s
Usage:
Rails new APP_PATH [options]
Options:
-r, [--Ruby=PATH] # Path to the Ruby binary of your choice
# Default: /Users/jmcrist/.rvm/rubies/Ruby-2.0.0-p247/bin/Ruby
-b, [--builder=BUILDER] # Path to a application builder (can be a filesystem path or URL)
-m, [--template=TEMPLATE] # Path to an application template (can be a filesystem path or URL)
[--skip-gemfile] # Don't create a Gemfile
[--skip-bundle] # Don't run bundle install
-G, [--skip-git] # Skip Git ignores and keeps
-O, [--skip-active-record] # Skip Active Record files
-S, [--skip-sprockets] # Skip Sprockets files
-d, [--database=DATABASE] # Preconfigure for selected database (options: mysql/Oracle/postgresql/sqlite3/frontbase/ibm_db/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
# Default: sqlite3
-j, [--javascript=JAVASCRIPT] # Preconfigure for selected JavaScript library
# Default: jquery
-J, [--skip-javascript] # Skip JavaScript files
[--dev] # Setup the application with Gemfile pointing to your Rails checkout
[--Edge] # Setup the application with Gemfile pointing to Rails repository
-T, [--skip-test-unit] # Skip Test::Unit files
[--old-style-hash] # Force using old style hash (:foo => 'bar') on Ruby >= 1.9
Runtime options:
-f, [--force] # Overwrite files that already exist
-p, [--pretend] # Run but do not make any changes
-q, [--quiet] # Suppress status output
-s, [--skip] # Skip files that already exist
Rails options:
-h, [--help] # Show this help message and quit
-v, [--version] # Show Rails version number and quit
Description:
The 'Rails new' command creates a new Rails application with a default
directory structure and configuration at the path you specify.
You can specify extra command-line arguments to be used every time
'Rails new' runs in the .railsrc configuration file in your home directory.
Note that the arguments specified in the .railsrc file don't affect the
defaults values shown above in this help message.
Example:
Rails new ~/Code/Ruby/weblog
This generates a skeletal Rails installation in ~/Code/Ruby/weblog.
See the README in the newly created application to get going.
私はHartlのRailsチュートリアルを行っていますが、彼はgemfileにかなりの変更を加えています。これが原因かどうか疑問に思っていますか?
source 'https://rubygems.org'
gem 'Rails', '3.2.13'
group :development do
gem 'sqlite3', '1.3.5'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-Rails', '3.2.5'
gem 'coffee-Rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
gem 'jquery-Rails', '2.0.2'
group :production do
gem 'pg', '0.12.2'
end
Railsディレクトリにいないようです(出力はRailsはRails new
を使用することです)を使用する唯一の有効な方法を示しています)。
バージョンに応じて、Railsはこれを異なる方法で識別します。3.2では、script/Rails
でファイルをチェックします。4.0がリリースされたので、script/Rails
のいずれかを探します。またはbin/Rails
( https://github.com/Rails/rails/blob/207fa5c11ddf1cfd696f0eeb07d6466aae9d451e/railties/lib/Rails/app_Rails_loader.rb#L6 )
おそらく、Rails
ディレクトリにファイルscript
を作成することでこれを回避できます(script
ディレクトリがない場合は、アプリのルートに作成します)。
#!/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.
APP_PATH = File.expand_path('../../config/application', __FILE__)
require File.expand_path('../../config/boot', __FILE__)
require 'Rails/commands'
もちろん、そもそもなぜこのファイルがないのか不思議に思う価値があります。 Railsが最初に使用したいバージョンであることを確認する価値があるかもしれません(バージョンが新しい場合はRails -v
、 this 投稿で方法がわかります古いバージョンを使用して新しいアプリを作成します)。
考えられる理由:
bin
ディレクトリが空になる可能性があります。rake Rails:update:bin
(Rails 4)またはRails app:update:bin
(Rails 5)の場合)を実行してみてください上記のすべての答えは私を助けませんでした。 Rails 4
の問題を解決したのは、アプリケーションのルートディレクトリでコマンドを実行することでした。
rake Rails:update:bin
その後、Rails s
の実行は期待どおりに実行されていました。
宝石をまだバンドルしていない可能性があります。
# from command line
bundle install
たとえば、rvm
またはrbenv
を使用して複数のRubyバージョンを保持している場合、その特定のRails
バージョンのデフォルトのRuby
バージョンは、実行しようとしているプロジェクトとは異なるため、実行できません。アプリケーションを検出します。
正しいRails
バージョンを使用していることを確認するために、両方の結果を比較できます。これは私が持っているものです:
$ Rails -v
Rails 3.1.0
に
$ bundle exec Rails -v
Rails 5.0.0.1
この場合、デフォルトのRails
バージョンを保持してから、以下を使用できます。
$ bundle exec Rails server
または、特定のRails gem
をその非常にRuby
バージョンに次のようにインストールします。
$ gem install Rails -v 5.0.0.1
$ Rails -v
Rails 5.0.0.1
そして、冗長性の低いコマンドで動作させます。
$ Rails s
これが同じ状況で他の人々に役立つことを願っています!
最初にロケーションパスを確認してから、
bundle install
それでも機能しない場合は、
/bin/bash --login
bundle install
私はこの問題を抱えていました。アクティブなRubyバージョンをchrubyに変更するのを忘れていたことに気付くのに数分かかりました。異なるRubyは、異なるRailsバージョンを意味し、別のフォルダーで関連ファイルを検索しました。