vestal_versions:列名为更改的问题

时间:2010-05-11 16:39:53

标签: ruby-on-rails ruby-on-rails-3 vestal-versions

我正在使用2个月的版本。一切都很好,直到今天下午。 我没有做任何特别的事(或者我没记得......)但是代码在其他计算机上工作得很好......

问题是我无法再保存我的模型了:rails给我这个错误:ActiveRecord::DangerousAttributeError: changes is defined by ActiveRecord

更改字段默认为activerecord方法。

使用控制台,消息是下一个:

ActiveRecord::DangerousAttributeError: changes is defined by ActiveRecord

以下是我的本地gem文件:

abstract (1.0.0)
actionmailer (3.0.0.beta3)
actionpack (3.0.0.beta3)
activemodel (3.0.0.beta3)
activerecord (3.0.0.beta3)
activeresource (3.0.0.beta3)
activesupport (3.0.0.beta3)
arel (0.3.3)
builder (2.1.2)
bundler (0.9.25, 0.9.24)
crack (0.1.7)
erubis (2.6.5)
god (0.9.0)
haml (3.0.1, 2.2.23)
i18n (0.3.7)
mail (2.2.0)
memcache-client (1.8.3)
memcached (0.17.7)
mime-types (1.16)
polyglot (0.3.1)
rack (1.1.0)
rack-mount (0.6.3)
rack-test (0.5.3)
rails (3.0.0.beta3)
railties (3.0.0.beta3)
rake (0.8.7)
savon (0.7.8, 0.7.6)
text-format (1.0.0)
text-hyphen (1.0.0)
thor (0.13.6, 0.13.4)
treetop (1.4.5)
tzinfo (0.3.20)

这是我的Gemfile

source 'http://gemcutter.org'

gem "rails", "3.0.0.beta3"

gem "will_paginate", "3.0.pre"

#gem 'nokogiri'
#gem 'curb'
#gem 'handsoap'
gem 'savon'
gem 'mysql'
gem 'haml', '2.2.23'
#gem 'haml', '3.0.1'
gem 'hpricot'
gem 'i18n', '> 0.3.5'
gem 'i18n_routing'
gem 'i18n_auto_scoping'
gem 'handler301', :git => 'http://github.com/kwi/handler301.git'
gem 'seo_meta_builder'

gem 'vestal_versions'

#gem 'paperclip', :git => 'git://github.com/thoughtbot/paperclip.git', :branch => 'rails3'

## Bundle edge rails:
gem "rails", :git => "git://github.com/rails/rails.git"

## Bundle the gems you use:
# gem "bj"
# gem "hpricot", "0.6"
# gem "sqlite3-ruby", :require => "sqlite3"
# gem "aws-s3", :require => "aws/s3"

## Bundle gems used only in certain environments:
# gem "rspec", :group => :test
# group :test do
#   gem "webrat"
# end

如果您有任何解决此问题的建议,我将很高兴听到他们的意见!

由于

1 个答案:

答案 0 :(得分:2)

模型中有一个名为changes的字段。这是一种不好的做法,因为属性访问器将掩盖原始更改方法。绝不应将ActiveRecord :: Base的方法用作数据库中的列名。

如果你没有改变任何东西,那么你现在看到这一点很奇怪。您是否升级了ActiveRecord gem,或者将某个列重命名为更改。

最简单的解决方法,如果您可以接受,则重命名数据库中的更改列。