1

environment.rbの指示を使用して Rails アプリにいくつかの gem を追加してみました。config.gemこれにより、アプリが新しいシステムにデプロイされたときに、不足している gem の問題を次の方法で処理できます。rake gems:install

アプリが依存する必要な gem のリストを追加した後、アプリを起動できませんでした。environment.rb ファイルから必要な gem のリストを削除すると、アプリは正常に起動します。

environment.rb のコメントは言う

# You have to specify the :lib option for libraries, where the Gem name (sqlite3-ruby) differs from the file itself (sqlite3)

gem の 1 つに :lib オプションがないことはほぼ確実です。gem がライブラリであり、そのライブラリ名であるかどうかを確認するにはどうすればよいですか?

4

4 に答える 4

5

「ライブラリの宝石」と「ライブラリ以外の宝石」があるということではありません。むしろ、Railsrequireがロードしたすべての gem を自動的に s にしconfig.gemます。Rails が必要なものを認識する方法は、 で指定したものです:lib。何も指定しない場合、gem の名前を要求しようとします。

例えば:

config.gem 'simple-navigation'

「simple-navigation」gem が必要になりますが、これは機能しません。代わりに次を指定する必要があります。

config.gem 'simple-navigation', :lib => 'simple_navigation'

必要な gem の説明を見て、別のものが必要かどうかを確認してください。(たとえば、それらのいずれかにハイフンが含まれている場合、結果の:lib参照ではおそらくアンダースコアになります。)

于 2009-11-20T12:20:04.053 に答える
1

実際には、'gem contents' は、gem 内のファイルをリストします。これが手がかりになります。

于 2010-02-05T21:35:38.997 に答える
1

正しいライブラリを見つけるための私の実証済みの真の方法(readmeに含まれていない場合、私はしばしばそうであることがわかりました)を実行することです

宝石仕様

次に、特に lib/ ディレクトリ内のファイルリストを調べます。通常、gem 自体に最も近い名前を持つものが、私が探しているものです。明らかに、これは 100% 信頼できるわけではありませんが、私にとっては問題なく機能しました。

たとえば、gem 仕様の ruby​​-plsql は次のようになります。

--- !ruby/object:Gem::Specification 
name: ruby-plsql

....    

extra_rdoc_files: 
- History.txt
- License.txt
- README.txt
files: 
- History.txt
- License.txt
- README.txt
- lib/oradate_patch.rb
- lib/plsql/connection.rb
- lib/plsql/jdbc_connection.rb
- lib/plsql/oci_connection.rb
- lib/plsql/package.rb
- lib/plsql/procedure.rb
- lib/plsql/schema.rb
- lib/ruby_plsql.rb
- lib/ruby_plsql/version.rb
- spec/plsql/package_spec.rb
- spec/plsql/procedure_spec.rb
- spec/plsql/schema_spec.rb
- spec/spec.opts
- spec/spec_helper.rb
has_rdoc: true
homepage: http://ruby-plsql.rubyforge.org
licenses: []

....

rubyforge_project: ruby-plsql
rubygems_version: 1.3.4
signing_key: 
specification_version: 2
summary: ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
test_files: []

そして、私は見る

lib/ruby_plsql.rb

gem の名前は ruby​​-plsql であるため、これがメインの lib ファイルである可能性があると推測します。.gemspec ファイルをチェックして、ビルド先を確認することもできます。

于 2009-11-20T13:55:54.917 に答える
1

必要なgemが役に立ちます

于 2009-12-02T04:13:36.957 に答える