2012-01-24 34 views
10

Tôi thiết lập một gemMar RVM cấp dự án cho ứng dụng sinatra Tôi bắt đầu sẽ kết nối với cơ sở dữ liệu cục bộ với Active Record. Để kiểm tra nó tôi đã cố gắng để chạy các ứng dụng thử nghiệm dưới đây:Lỗi khi tải đá quý Active Record bằng ứng dụng Sinatra sử dụng RVM

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 

(Trích từ câu trả lời cho câu hỏi này: What's the best way to talk to a database while using Sinatra?)

Khi tôi chạy ruby -rubygems test.rb tôi có được điều này lỗi:

/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) 

tôi đã cài đặt Active Record đá quý và nó xuất hiện trong gem listrvm current màn hình c orrect gemset. Tôi mới vào RVM và tôi nghĩ rằng đây là một cái gì đó để làm với nó không có đường dẫn tải chính xác nhưng tôi cảm thấy như tôi đã thiết lập tất cả mọi thứ một cách chính xác vì vậy tôi đánh giá cao đề xuất về những gì sai. Cảm ơn.

Trả lời

17

Theo như tôi có thể yêu cầu 'activerecord' không được chấp nhận. Hãy thử sử dụng

require 'active_record' 

để thay thế.

+0

đúng là vậy. Cảm ơn. – tks

+1

Tại sao họ không đổi tên gem thành active_record? Điều này làm tôi mất rất nhiều thời gian,: ( –

+0

Tên Gem có xu hướng không liên quan đến cách chúng được nạp như phụ thuộc. Chỉ cần nhìn vào 'Gemfile' của dự án của tôi, tôi có thể thấy nhiều quy ước tại chỗ, không cái nào phù hợp. , 'capybara-webkit' VS' database_cleaner'. –

0

Nếu bạn chưa cài đặt viên ngọc activerecord, bạn cũng sẽ nhận được rằng lỗi:

Mở một dấu nhắc lệnh và chạy các lệnh sau trong terminal:

#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 

Dưới đây là một số mã sử dụng đá quý ActiveRecord để xem mọi thứ có được định cấu hình đúng không:

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

Nếu mọi thứ đang hoạt động, nó sẽ in bệnh "activerecord gem được cài đặt" mà không có bất kỳ lỗi nào.

Các vấn đề liên quan