在ruby脚本上使用活动记录和mysql

我一直在尝试在ruby脚本上使用mysql和活动记录,但我收到以下消息:过时的mysql gem。 升级到2.8.1或更高版本。 在你的Gemfile中:gem’mysql’,’2.8.1’。 或者使用gem’mysql2’(RuntimeError)。 在我收到关于gem’mysql2’缺失的消息之前,然后我检查了活动记录中的连接适配器上的源代码,并看到它需要我没有安装的mysql gem。

这是我的脚本:

require 'rubygems' require 'active_record' require 'mechanize' require 'nokogiri' require 'active_record' require 'mysql2' gem 'mysql2' ActiveRecord::Base.establish_connection ({ :adapter => "mysql", :host => "localhost", :username => "root", :password => "", :database => "rainalytics"}) ActiveRecord::Schema.define(:version => 20110320035328) do create_table "score_logs", :force => true do |t| t.integer "blog_posts" t.integer "featured" end create_table "users", :force => true do |t| t.datetime "created_at" t.datetime "updated_at" end end class User < ActiveRecord::Base has_many :score_logs end class ScoreLog < ActiveRecord::Base belongs_to :user end 

我没有使用’require’mysql2’或’gem’mysql2’部分,它似乎工作正常,我还在ActiveRecord :: Base块中有额外的{}

希望这可以帮助将来的人:)

这就是我使用的
ruby 1.9.2p318(2012-02-14修订版34678)[x86_64-darwin11.2.0]
Rails 3.1.0


 require "rubygems" require "active_record" ActiveRecord::Base.establish_connection ({ :adapter => "mysql2", :host => "localhost", :username => "root", :password => "root", :database => "cybercellar"}) class Zone < ActiveRecord::Base end zone = Zone.all print zone 

然后我导航到我的app文件夹并运行该文件

ruby script / test.rb