首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#<ActiveRecord::ConnectionAdapters::MysqlAdapter的未定义方法“`explain”

问#<ActiveRecord::ConnectionAdapters::MysqlAdapter的未定义方法“`explain”
EN

Stack Overflow用户
提问于 2012-01-30 07:44:55
回答 1查看 5.3K关注 0票数 7

我是Ruby on Rails的新手,但我已经阅读了一些教程,并对此略知一二。我已经生成了一些脚手架,并将数据插入到MySql数据库中。

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

控制器正在执行索引

代码语言:javascript
复制
  def index
    @beers = Beer.all

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

并以此作为结构

代码语言:javascript
复制
Beer: id, brewer_id, name, price, score, color, brew_type, create_at, updated_at

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 08:36:24

我猜你使用的是Rails3.2,你的Beer.all调用时间太长了。从3.2 release notes

运行时间超过半秒的

查询在开发模式下会自动解释。当然,这个阈值是可以改变的。

如果我们看一下MySQL adapter for Rails,就会发现没有explain方法。但是,MySQL2 adapter确实理解explain。

首先,您可能需要较少的啤酒或一些分页。然后,您应该尝试切换到MySQL2适配器;只需通过编辑您的Gemfile以使用mysql2来安装新适配器,运行bundle以设置新内容,然后将您的database.yml更改为如下所示:

代码语言:javascript
复制
development:
  adapter: mysql2
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9057863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档