1

私はRails 3.1を搭載したWindows XPを使用しており、mysql2 0.2.6を使用していますが、次のようなリクエストをしようとすると:

Product.all

私はこの応答を得ました:

irb(main):001:0> Product.all
  ←[1m←[36m (0.0ms)←[0m  ←[1mSHOW TABLES←[0m
  ←[1m←[35m (0.0ms)←[0m  describe `products`
ArgumentError: wrong number of arguments (3 for 2)
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/mysql2-0.2.6-x86-mingw32/lib/active_record/connection_adapters/mysql2_adapter.rb:634:in `select'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:18:in `select_all'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/query_cache.rb:63:in `select_all'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/activerecord-3.1.0/lib/active_record/base.rb:470:in `find_by_sql'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/activerecord-3.1.0/lib/active_record/relation.rb:111:in `to_a'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/activerecord-3.1.0/lib/active_record/relation/finder_methods.rb:155:in `all'
        from D:in `all'
        from (irb):1
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands/console.rb:45:in `start'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands/console.rb:8:in `start'
        from D:/projects/rails/_API/rake/ruby/1.9.1/gems/railties-3.1.0/lib/rails/commands.rb:40:in `<top (required)>'
        from script/rails:6:in `require'
        from script/rails:6:in `<main>'

私のコントローラー:

  def index
    @products = Product.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @products }
    end
  end

私のモデル:

class Product < ActiveRecord::Base
  define_index do
    indexes brand
    indexes name
    indexes denomination
  end
end
4

1 に答える 1

2

mysql2 0.2.6 は Rails 3.1 と互換性がありません。Rails を 3.0.7 にダウングレードするか、mysql2 を 0.3.1 にアップグレードする必要があります。

于 2012-01-02T16:37:15.373 に答える