Pregunta

acabo de crear un (bundler usando) nueva joya y quiero añadir soporte Active Record. Así que he añadido a mi s.add_dependency "activerecord", "~> 3.0" gemspec. Luego uso Bundler.setup y Bundler.require y pensó que tengo acceso a Active Record ahora, pero yo no. Tengo que utilizar explícitamente require "active_record". Cualquier idea de por qué Bundler.require no funciona para mí en ese caso?

¿Fue útil?

Solución

En primer lugar, si está envasado de una joya, no utilice Bundler.require . Bundler.require es para las aplicaciones no gemas.

  • En .gemspec, especificar las dependencias de su joya desplegado.

  • En su Gemfile, incluye el gemspec línea para incluir automáticamente las dependencias enumeradas en su .gemspec en su Gemfile.

    También puede crear opcionalmente grupos joya para dev y prueba.

  • En su código, require explícitamente ninguna biblioteca que necesita.

perdió un par de horas en este día de hoy, así que espero que esto ayude.

(Fuentes 1 , 2 )

En segundo lugar, aunque la gema ActiveRecord se llama "activerecord", el lib se llama "active_record". Esto es lo que se necesita en Gemfile.

gem 'activerecord', :require => "active_record"

Solo que incluya la opción :require, ActiveRecord no se ha cargado correctamente y que no lo sabrá hasta que lo intente utilizarlo.

Otros consejos

Si desea utilizar Bündler usted necesita definir su Gemfile con activerecord

gem 'activerecord', "~> 3.0.0"

o necesita definir bundler utilizar su gemspec con la adición de gemspec en su Gemfile

gemspec

http://gembundler.com/rubygems.html

he tenido este problema, y ??el problema en mi caso era que yo estaba nombrando un directorio en mi joya registro activo, como en:

lib ->
  active_record ->
    base.rb <- containing some monkey patches to base

Esto estaba causando confusión masa incluyendo mensajes de error dulces como:

Gem Load Error is: uninitialized constant ActiveRecord::Base
Did you mean?  ActiveRecord::Base

Simplemente moviendo cambiar el archivo de lib/active_record/base.rb a lib/active_record_base.rb fijo por mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top