Ошибка загрузки гема Active Record с помощью приложения sinatra с использованием RVM - PullRequest
10 голосов
/ 24 января 2012

Я установил набор гемов RVM уровня проекта для запуска приложения sinatra, которое будет подключаться к локальной базе данных с помощью Active Record. Чтобы проверить это, я попытался запустить следующее тестовое приложение:

test.rb

require 'rubygems' # may not be needed, depending on platform
require 'sinatra'
require 'activerecord'

class Article < ActiveRecord::Base
end

get '/' do
  Test.establish_connection(
    :adapter => "sqlite3",
    :database => "hw.db"
  )
  Test.first.content
end

(взято из ответа на этот вопрос: Как лучше всего общаться с базой данных при использовании Синатры? )

Когда я запускаю ruby -rubygems test.rb, я получаю эту ошибку:

/Users/[user]/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- activerecord (LoadError)

Я уже установил гем Active Record, и он отображается в gem list, а rvm current отображает правильный набор камней. Я новичок в RVM, и я думаю, что это как-то связано с тем, что у него нет правильного пути загрузки, но я чувствую, что все настроил правильно, поэтому я был бы признателен за предложения о том, что не так. Спасибо.

Ответы [ 2 ]

17 голосов
/ 24 января 2012

Насколько я могу судить, require 'activerecord' устарела.Попробуйте использовать

require 'active_record'

.

0 голосов
/ 26 апреля 2012

Если вы еще не установили гем activerecord, вы также получите эту ошибку:

Откройте командную строку и выполните следующие команды в терминале:

#Find if the active record gem is already installed on your computer:
gem query --local

#See the downloadable gems, and see if activerecord is still available:
gem query --remote --name-matches activerecord

#Install your gem:
gem install --remote activerecord

#See if it installed successfully and is in the installed gem list:
gem query --local  

Вот некоторый код, который использует гем ActiveRecord, чтобы увидеть, все ли настроено правильно:

#Ruby code
require 'active_record'
class Dog < ActiveRecord::Base
  has_many :dog_tags
end
puts "activerecord gem is installed";

Если все работает, он напечатает «gem activerecord установлен» без ошибок.

...