3

バックグラウンド

私はRubyOnRailsサイトのコンテンツを維持していますが、実際にはRailsの経験がありません。

Railsサーバーを実行しようとすると:次のrails sようになります。

どのソースにもactivesupport-3.2.0が見つかりませんでした

bundle install不足している宝石をインストールするために実行します

バンドルインストールを実行します

Gem :: InstallError:factory_girlにはRubyバージョン>=1.9.2が必要です。factory_girl(3.2.0)のインストール中にエラーが発生し、Bundlerを続行できません。

gem install factory_girl -v '3.2.0' バンドルする前に、それが成功することを確認してください。

さて、私は指示に従ってfactory_girlをインストールします:

factory_girl-3.2.0が正常にインストールされました1gemがインストールされました

バンドルインストールを再度実行します。

Gem :: InstallError:factory_girlにはRubyバージョン>=1.9.2が必要です。factory_girl(3.2.0)のインストール中にエラーが発生し、Bundlerを続行できません。gem install factory_girl -v '3.2.0'バンドルする前に、それが成功することを確認してください。

何か考えはありますか?

情報

昨日、Railsサーバーを実行しようとしたときにクロストレッドエラーが発生しました。したがって、このSOのアドバイスに従って、RVMを削除し、RVMの代わりにrbenvとbundlerをインストールしたことをお勧めします。

Ruby1.9.3-p125と1.9.3-rc1の両方で試しました

の出力はgem list、インストール済みのfactory_girlを示しています。

  • ..。
  • factory_girl(3.2.0)
  • ..。

の出力gem environmentは、問題がruby 1.9.1のインストールにも関係している可能性があることを示していますか?

RubyGems環境:
-RUBYGEMSバージョン:1.8.10
-RUBYバージョン:1.9.3(2011-09-23パッチレベル-1)[x86_64-darwin11.3.0]
-インストールディレクトリ:/Users/andreas/.rbenv/versions/1.9。 3-rc1 / lib / ruby​​ / gems / 1.9.1
-RUBY実行可能ファイル:/Users/andreas/.rbenv/versions/1.9.3-rc1/bin/ruby-実行可能
ディレクトリ:/Users/andreas/.rbenv/versions/ 1.9.3-rc1 / bin
-RUBYGEMSプラットフォーム:-ruby -x86_64-darwin-11 -GEMパス: - /Users/andreas/.rbenv/versions/1.9.3-rc1/lib/
ruby /gems/ 1.9.1- /Users/andreas/.gem/ruby/1.9.1-GEM 構成: -:update_sources => true- :verbose => true







-:benchmark => false-
:backtrace =>
false-:bulk_threshold => 1000-
"gem" => "--no-ri --no-rdoc"
-リモートソース: -http
: //rubygems.org/

4

5 に答える 5

2

これを試しましたか?

bundle exec rails s
于 2012-05-02T14:03:31.570 に答える
2

@jdoe がコメントで回答しました。そしてそれはうまくいきました。どうやら削除する必要がありましたGemfile.lock

理由や方法はわかりませんが。@jdoeが現れて本当の答えで彼のポイントを集めるまで、私はこれをここに投稿しています。

于 2012-05-02T14:09:34.787 に答える
0

インストールするすべての gem が Gemfile にあることを確認してください。gem が Gemfile に追加されていないと、手動でインストールしたとしても、Rails アプリはそれを取得できません。

サンプルGemfileは

gem 'rails', '3.0.0'

gem 'mysql2', '< 0.3'
gem 'rails3-jquery-autocomplete'

#authorization
gem 'authlogic'
gem 'hoptoad_notifier'

#reporting
gem 'lazy_high_charts'

group :test do
  gem 'rspec', '2.0.0'
  gem 'rspec-rails', '2.0 '
  gem "test-unit"
end
于 2012-05-02T14:22:55.763 に答える
0

まず最初に - 私は rbenv の経験がありません。

RVM の優れた点の 1 つは、Ruby 環境の可動部分が何であるかを明確にするのに役立つことです。

rvm listは Ruby のリストを提供します rvm gemset listは gemset のリストを提供します (バンドラーを使用している場合、これは必要ありません)。

さて、ここにいくつかのトリッキーなことがあります:

  • Gemfile は、何をインストールするかを決定するために Bundler によって使用されます。
  • 何も指定されていない場合、Bundler は最新バージョンの gem をインストールしようとします。
  • gem の最新バージョンが現在の Ruby と互換性がない場合、...
    • Ruby のバージョンを変更できます (たとえば、 rvm install 1.9.3 )。
    • Gemfile に、さまざまな程度の厳密さで、必要な gem のバージョンを指定するように指示できます。
      • 箇条書きをインデントするのが好きだと言えますか?
      • gem "vcr", "~> 1.11.3" # => これは 1.11.3 を好むと言いますが、1.11 の範囲内であれば何でも構いません
      • gem 'factory_girl', '3.2.0' # => つまり、factory_girl のバージョン 3.2.0 のみをインストールし、それ以外は何もインストールしない

さらに、何よりも先にbundle checkを実行して、バンドラーが gem について何と言っているかを確認する必要があります。

于 2012-05-02T14:00:34.367 に答える