我不明白爲什麼我無法使用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