0

私は 2 か月間、vestal バージョンを使用しています。今日の午後まで、すべてが順調でした。私は特別なことは何もしていません(または覚えていません...)が、コードは他のコンピューターで正常に動作します...

問題は、モデルを保存できなくなったことです:レールは私にこのエラーを与えます: ActiveRecord::DangerousAttributeError: changes is defined by ActiveRecord

changes フィールドはデフォルトでアクティブレコード メソッドです。

コンソールでは、メッセージは次のとおりです。

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

この問題を解決するための提案があれば、喜んでお聞きします。

ありがとう

4

1 に答える 1

2

モデルには、変更と呼ばれるフィールドがあります。属性アクセサーが元の変更メソッドをマスクするため、これは悪い習慣です。ActiveRecord :: Baseのメソッドは、データベース内の列名として使用しないでください。

何も変更していない場合は、これが表示されているのは奇妙です。ActiveRecordジェムをアップグレードしたか、列の名前を何かから変更に変更しましたか?

これが許容できる場合の最も簡単な修正は、データベース内の変更列の名前を変更することです。

于 2010-05-11T17:16:42.190 に答える