我的代码:
class User < ActiveRecord::Base
belongs_to :university
end
class University < ActiveRecord::Base
has_many :users, dependent: :destroy
end
我的模型用户有一个 university_id 属性。
如果我这样做
University.find(1).users
我得到了用户列表,但如果我这样做了 User.find(1).university
(我检查了 university_id 在这里不是零)我得到: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>'
我究竟做错了什么?我有另一个模型,它们工作得很好。有什么建议?提前致谢
最佳答案
我仍然无法发表评论,所以我会烧掉一个答案:
不知何故,用户模型中的belongs_to :university 未被识别。测试时,您确定 User 模型已保存并位于正确的位置,并且服务器或控制台已刷新?最常见的是,根据我的经验,当我处理模型时,我必须经常刷新我的服务器和控制台以获得干净的结果。
关于ruby-on-rails-3 - 一个belongs_to 关联的未定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876360/