我不明白为什么我无法使用activerecord在我的模型中导航。Rails无法在具有活动记录的模型中导航
我有HAS_ONE轮廓(实际上是用户的详细信息)是belongs_to的用户和城市
class Profile < ActiveRecord::Base
belongs_to :user
belongs_to :city
end
和模型市
class User < ActiveRecord::Base
has_one :profile, :dependent => :destroy
end
模型Profile能够HAS_MANY配置文件的用户模型
class City < ActiveRecord::Base
belongs_to :country
has_many :profiles
end
在我的user_controller中,我可以像这样访问配置文件:
@user = User.find(params[:id])
logger.info(@user.profile.inspect)
但我不能去更深的是这样的:
@user = User.find(params[:id])
logger.info(@user.profile.city.inspect)
返回
undefined method `city' for nil:NilClass
我想要得到的是市从存储在配置文件中city_id名称模型。 有人可以向我解释我做错了什么吗? 感谢
'@ user.profile.inspect'的结果是什么?我认为这是'无'。 – codeit 2013-03-08 18:20:38
你能确认@user有个人资料吗?这些关系看起来都不错,但如果用户在数据库中实际上没有配置文件,那么你将会得到上述错误。 – 2013-03-08 18:21:14
配置文件的city_id字段为空...无论如何,我仍然有一个错误:未定义的方法'城市'为#' –
Gozup
2013-03-08 22:29:39