belongs_to关联的未定义方法

mar*_*maf 6 activerecord belongs-to ruby-on-rails-3

我的代码:

class User < ActiveRecord::Base
    belongs_to :university
end

class University < ActiveRecord::Base
  has_many :users, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)

和我的模型User有一个university_id属性.

如果我这样做,University.find(1).users我会得到用户列表,但如果我这样做User.find(1).university(并且我检查过university_id在这里不是nil),我得到:

NoMethodError: undefined method `university' for #<User:0x00000003859fc8>
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/activemodel-3.0.10/lib/active_model/attribute_methods.rb :392:in `method_missing'
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.10/lib/active_record/attribute_methods. rb:46:in `method_missing'
from (irb):14
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.10/lib/rails/commands/console.rb:44:in`start'
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.10/lib/rails/commands/console.rb:8:in start'
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.10/lib/rails/commands.rb:23:in
`<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我有另一个模型,他们工作得很好.有什么建议?提前致谢

Dav*_*10k 8

我仍然无法发表评论,所以我会回答:

不知何故,用户模型中的belongs_to:university未被识别.在测试时,您确定用户模型已保存并且位于正确的位置且服务器或控制台是否已刷新?最常见的是,根据我的经验,当我干扰模型时,我必须经常刷新我的服务器和控制台以获得干净的结果.

  • 因此,Lambda Red确实是对的。今天,我又开始工作了,问题解决了!我猜控制台(或服务器)的重启可以解决问题。我现在觉得很蠢哈哈。我只是无法解决这个问题,为什么一个“方面”正在发挥作用,而另一个方面却无济于事。谢谢! (2认同)