【问题标题】:Using active record and mysql on ruby script在 ruby​​ 脚本上使用活动记录和 mysql
【发布时间】:2011-07-22 17:00:01
【问题描述】:

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

【问题讨论】:

  • 我认为你的适配器应该是mysql2
  • 您是对的,谢谢,如果您发布答案,我很乐意将其标记为正确。

标签: mysql ruby activerecord rubygems


【解决方案1】:

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

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

这是我用的
ruby 1.9.2p318(2012-02-14 修订版 34678)[x86_64-darwin11.2.0]
导轨 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

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

ruby 脚本/test.rb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多