【发布时间】:2016-08-08 03:25:25
【问题描述】:
我试图弄清楚如何在 Rails 4 中制作一个简单的应用程序。
我有用户、个人资料和身份的模型。这些关联是:
用户
has_many :identities, dependent: :destroy
has_one :profile, dependent: :destroy
简介
belongs_to :user
身份
belongs_to :user
在控制台我可以写:
p = Profile.last p.user.identities.map(&:provider).include?('facebook')
它正确地产生 :false 的结果
当我尝试在配置文件辅助方法中编写以下内容时:
if @profile.user.identities.map(&:provider).include?('facebook')
我收到一条错误消息:
undefined method `user' for nil:NilClass
我在应用中有一个登录用户。我不明白为什么我可以在控制台中成功地请求这个,但是当我在应用程序中尝试时出现错误。
谁能看出哪里出了问题?
【问题讨论】:
-
你的联想是什么样的?
-
@profile 来自哪里?
-
你可以使用默认的调试 gem
byebug来检查@profile吗? -
@jdgray - 嗨 - 我在上面添加了我的关联。在控制台中一切正常 - 所以我只是期待它在应用程序中工作
-
@Milind - 在控制台中它来自 p = Profile.last。在应用程序中,它来自配置文件显示页面。
标签: ruby-on-rails methods call