繁体   English   中英

未定义的方法`explain'for#

[英]undefined method `explain' for #<ActiveRecord::ConnectionAdapters::MysqlAdapter

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

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

控制器正在执行索引

  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正在为我创建的其他脚手架工作,并列出数据。 我更新了实体Beer的mysql结构,它可能没有反映rails中的变化(dunno)。

我是否需要一个不同的gem来将rails连接到mysql db? 任何关于检查什么的建议都将受到赞赏(:

我猜你正在使用Rails 3.2并且你的Beer.all通话耗时太长。 3.2发行说明

在开发模式下会自动解释运行时间超过半秒的查询。 当然,这个阈值可以改变。

如果我们查看RailsMySQL适配器 ,就没有explain方法。 但是, MySQL2适配器确实理解explain

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

development:
  adapter: mysql2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM