【问题标题】:vestal_versions : problem with column named changesvestal_versions :名为更改的列的问题
【发布时间】:2010-05-11 16:39:53
【问题描述】:

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

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

changes 字段默认是一个 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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答。列更改由vestal_plugins 提供,这不是我的东西:) 今天执行了一些捆绑安装。也许有 ActiveRecord 的更新?显然,一些文件已被修改到我的 bundle gem 目录中,涉及 activerecord。 pfff 失败了!谢谢你的帮助。我会努力解决的!
    • Arkannia,你能解决这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    相关资源
    最近更新 更多