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

时间:2011-03-25 06:39:50

标签: mysql ruby activerecord rubygems

我一直在尝试在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

1 个答案:

答案 0 :(得分:0)

我没有使用'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