我已经在这个问题上苦苦挣扎了一段时间,但我无法处理它。
我有一个在 Rails 2.3.18/ruby1.8.7 上运行良好的网站
我正试图把它带到 Rails3 上。我已经按照指南完成了视图更新(使用 rails_xss)。我现在正试图让测试套件通过并遇到以下奇怪的问题:
/Users/jon/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.0.20/lib/active_record/reflection.rb:71:
in `reflect_on_association': undefined method `[]'
for #<ActiveRecord::Reflection::AssociationReflection:0x00000100b607a0> (NoMethodError)
from /Users/jon/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord- 3.0.20/lib/active_record/autosave_association.rb:138:in `has_many'
from /projects/mau/app/models/studio.rb:7:in `<class:Studio>'
from /projects/mau/app/models/studio.rb:3:in `<top (required)>'
...
from /Users/jon/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.0.20/lib/rails/application.rb:134:in `initialize!'
from /Users/jon/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/railties-3.0.20/lib/rails/application.rb:77:in `method_missing'
from /projects/mau/config/environment.rb:5:in `<top (required)>'
from /projects/mau/spec/spec_helper.rb:3:in `require'
from /projects/mau/spec/spec_helper.rb:3:in `<top (required)>'
看似相关的代码位是我的Studio
模型有很多artists
. 并且Artist
模型来源于User
。
class Studio < ActiveRecord::Base
has_many :users
...
end
class Artist < User
...
end
class User < ActiveRecord::Base
belongs_to :studio
...
end
我仍然restful_authentication
参与该项目,并计划将其删除,但希望在运行测试套件后我能做到这一点。在这一点上,我无法运行rails
任何东西,因为一旦我访问这些有问题的对象之一,事情就会失败。
我已经研究过升级 ruby (1.9.3) 但仍然遇到同样的问题。
我已经深入研究了调试器,但找不到任何相关的东西。
我尝试使用完整的类名和外键指定belongs_to
/has_many
关系 - 没有区别。
我尝试了从 3.0.1 到 3.0.20 的不同版本的 Rails 3.0.x。没有效果。同样的问题。
我已经尝试了所有复数和单数 forhas_many
和belongs_to
符号的组合。
最糟糕的是,我在不同的对象上还有一些其他关系,这些关系似乎很愉快地设置了。他们不涉及User
让我担心它是restful_authentication
位的模型。
对于我的一生,我无法弄清楚是什么。如果有人有任何想法或以前看过这个,我很乐意提供帮助。
我正在尝试进入 Rails 3.0.20,目的是从那里向前滚动到 3.1,然后是 3.2。在我进一步推进之前,我真的很想在 3.0.20 上获得一个半稳定的版本。
提前感谢罗杰斯先生的任何提示/技巧