mysql - 未知列 mysql where 子句 - 但我可以在我的应用程序中访问和设置它。是什么原因造成的?

标签 mysql ruby-on-rails

型号:

   class Change < ActiveRecord::Base
      attr_accessor :selected_end_index, :selected_start_index, :revision_number

错误:

 ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'revision_number' in 'where clause': SELECT * FROM `changes` WHERE (kind = 2 && status = -1 && content_id = 2 && revision_number = 0)  ORDER BY id DESC

方法:

  def new_change_requests_for_latest_version
    changes = Change.find(:all, 
                :conditions => ["kind = ? && status = ? && content_id = ? && revision_number = ?", 
                                Change::CHANGE, Change::NEW, self[:id], self.current_version],
                :order => "id DESC")

    return changes
  end

最佳答案

这意味着没有名为“revision_number”的列。您可以在应用程序中访问它的原因是因为 attr_accessor 在内存对象中设置该字段。但分配给它的任何值都不会保留在数据库中,也无法对其进行查询。

关于mysql - 未知列 mysql where 子句 - 但我可以在我的应用程序中访问和设置它。是什么原因造成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142227/

相关文章:

ruby-on-rails - 如何使用 s3-select 获取 s3 json 文件中子对象的计数?

mysql - C 到 Mysql 的数据类型兼容性

mysql - 对dbShards有意见吗?

ruby-on-rails - 跳过 : registration vs remove :registerable

ruby-on-rails - 运行 rails server 时出现 SegFault

ruby-on-rails - 错误率: Are devise controllers generated automatically or should we write on our own?

php - 模态弹出窗口中的文本框未获取由更新单击触发的国家/地区值?

php - Mysql在错误的用户ID中输入数据(图像)并且数据库自动创建新的用户ID

PHP将mysql查询字符串转换为mm :ss time format

ruby-on-rails - before_filter 没有被称为 Rails 4