【问题标题】:Bind parameters in Rails mySQL empty在 Rails mySQL 中绑定参数为空
【发布时间】:2012-03-05 21:34:42
【问题描述】:

使用 Rails 3.1.1,我在生产中偶尔会遇到错误,似乎 mysql 查询上的绑定参数由于某种原因不存在。错误如下所示:

A ActiveRecord::StatementInvalid occurred in events#show:

Mysql::Error: : SELECT  `events`.* FROM `events`  WHERE `events`.`id` = ? LIMIT 1
activerecord (3.1.1) lib/active_record/connection_adapters/mysql_adapter.rb:890:in `execute

在任何插入或选择上都不一致,所以我无法追踪它。有人有什么建议吗?

编辑:更新为更简单的示例。

#events_controller.rb
def show
  @event = Event.find(params[:id])

  ...
end

#called with parameters: {"action"=>"show", "controller"=>"events", "id"=>"26"}

【问题讨论】:

  • 您能否发布用于生成view_ips 表、app/models/view_ip.rb 文件内容和videos#viewed 操作的迁移?这些将使我们能够帮助您。
  • 您可以尝试向模型对象添加验证,以便在问题进入数据库之前将其捕获。我的猜测是,这实际上不是与 MySQL 相关的问题。
  • 这是用于创建ViewIp 的代码,您在多少个地方这样做?向我们展示代码。将日志记录添加到代码中,以便您知道哪个实际方法/条目导致 nil 值。然后检查它们在哪里以及如何变为 nil。祝你好运。
  • 尝试将 Rails 升级到 3.1.4 看看这是否只是一个错误。

标签: mysql ruby-on-rails activerecord


【解决方案1】:

The probable reason

检查您的数据库驱动程序安装here

【讨论】:

【解决方案2】:

升级到最新的 Rails 后,这似乎已经消失了 - 不确定它是什么。

【讨论】:

    猜你喜欢
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2018-03-18
    • 1970-01-01
    • 2020-11-03
    • 2020-10-02
    • 2018-06-06
    相关资源
    最近更新 更多