Activerecord 一个模型的多个属性

Activerecord 一个模型的多个属性,activerecord,belongs-to,Activerecord,Belongs To,我有一个模型“评论”,它是由一个模型“用户”为给定的“城市”和“部门”给出的。 在为表“comments”创建模式时,我将city\u id、department\u id和user\u id列放在表cities、departments和users中,作为各自id的外键 class Comment < ActiveRecord::Base belongs_to :user belongs_to :city belongs_to :department end

我有一个模型“评论”,它是由一个模型“用户”为给定的“城市”和“部门”给出的。 在为表“comments”创建模式时,我将city\u id、department\u id和user\u id列放在表cities、departments和users中,作为各自id的外键

class Comment < ActiveRecord::Base  
  belongs_to :user  
  belongs_to :city
  belongs_to :department    
end
class注释
城市和部门是用参考数据填充的独立表格(用于在表格中填充)

当我尝试访问comment.city.name时,我得到一个“nil:NilClass的未定义方法`name'”。 表cities由“id”、“name”和“symbol”列定义。 这个错误的根本原因是什么? 我还需要做些什么呢?我甚至试过把很多东西放在课堂上:在班级城市和班级部门的反馈(尽管这不应该发生,因为它们独立于评论)。我似乎缺少一些基本的东西

谢谢,
Ashish

我认为你需要一个有很多东西可以和每个属于你的东西一起去。所以你的每个评论所属的类(用户、城市、部门)都应该有

has_many :comments

谢谢你的回复…我已经尝试过了。我已经在三个模型中匹配了has_many:comments-User、City、Department。表comments已经有User_id、City_id、Department_id列。表comments已经在创建新的person、City和Department的comment-id时填充了数据。但是当vie对于数据,我希望显示相应的名称,而不是ID。当我尝试执行comment.user.name时,它失败了。好的,那很好!如果您发布schema.rb的相关部分,以防其中有什么奇怪的地方,我想可能会有所帮助。另一件事是尝试强制rails以正确的顺序访问对象:(comment.city).name(不知道为什么,但有时需要确切地告诉rails如何操作)