mysql - #<ActiveRecord::ConnectionAdapters::MysqlAdapter 的未定义方法 `explain'

标签 mysql ruby-on-rails rubygems ruby-on-rails-3.2 rails-activerecord

我是 Ruby on Rails 的新手,但我已经学习了一些教程并且对自己的方法有了一些了解。我已经生成了一些脚手架并将数据插入到 MySql 数据库中。

导航到 index.html.erb 时,我收到标题中的错误

Controller 正在执行索引

  def index
    @beers = Beer.all

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

并将其作为结构

Beer: id, brewer_id, name, price, score, color, brew_type, create_at, updated_at

RoR 正在为我创建的其他脚手架工作,并列出数据。我在 mysql 中为实体 Beer 更新了结构,它可能没有反射(reflect) rails 中的变化(不知道)。

我需要一个不同的 gem 来将 rails 连接到 mysql 数据库吗?任何关于检查内容的建议将不胜感激(:

最佳答案

我猜您正在使用 Rails 3.2,并且您的 Beer.all 调用花费的时间太长。来自3.2 release notes :

Queries that take more than half a second to run are automatically explained in the development mode. This threshold, of course, can be changed.

如果我们看一下 MySQL adapter for Rails , 没有 explain 方法。然而,MySQL2 adapter确实理解解释

首先,您可能需要更少的啤酒或一些分页。然后,您应该尝试切换到 MySQL2 适配器;只需通过编辑 Gemfile 来安装新的适配器以使用 mysql2,运行 bundle 来设置新的东西,然后更改您的 database.yml 看起来更像这样:

development:
  adapter: mysql2

关于mysql - #<ActiveRecord::ConnectionAdapters::MysqlAdapter 的未定义方法 `explain',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057863/

相关文章:

ruby - 解析 Excel 二进制工作簿文件?

mysql - 尝试创建 SQL 命令来重新格式化并组合 3 个表值

html - 确定不再需要哪些源文件的最佳方法是什么?

java - 从海量文件中检索用户关系数据,尝试级联删除规则

javascript - 在 Rails 中使用 JavaScript

ruby-on-rails - "Local"使用 capistrano 部署时 gem 不工作

ruby - rake 发布失败(使用 gem bundler)

ruby-on-rails - 了解 ruby​​ on rails gemfile 中的组

c# - System.Data.OleDb.OleDbException 需要一个或多个参数

mysql - 将整数连接成二进制字符串并返回