我遇到了一个奇怪的错误,我不知道如何调试它。我尝试了一些不同的东西,但没有任何工作。
当我在我的应用程序中运行以下代码时
CoursePresentation.includes(:course)
我收到以下错误
[6] pry(main)> CoursePresentation.includes(:course)
CoursePresentation Load (0.2ms) SELECT "course_presentations".* FROM "course_presentations"
Course Load (0.2ms) SELECT "courses".* FROM "courses" WHERE "courses"."id" IN (1)
(pry) output error: #<NoMethodError: undefined method `each' for nil:NilClass>
我可以提供任何帮助或方向来解决这个问题。我有它工作,但现在它不是:/
我对这些模型的代码如下
class Course < ActiveRecord::Base
self.primary_key= 'id'
has_many :course_presentations
validates :name, presence: true
end
class CoursePresentation < ActiveRecord::Base
belongs_to :course
has_many :interactions
self.primary_key= 'id'
validates :course_id, :year, :month, presence: true
def full_name
course.name + ' (' + period + ')'
end
def period
year.to_s + month.to_s
end
def period_description
"#{ Date::MONTHNAMES[month.to_i]}, #{year}"
end
end
感谢。
答案 0 :(得分:0)
发现了这个问题。
对模型进行检查后发现我的一个外键是一个字符串。将此更新为整数后,一切正常。
[6] pry(main)> Course.inspect
"Course(id: integer, name: string, is_active: boolean, created_at: datetime, updated_at: datetime)"
[7] pry(main)> CoursePresentation.inspect
"CoursePresentation(id: integer, course_id: string, year: integer, month: integer, is_active: boolean, created_at: datetime, updated_at: datetime, mail_chimp_key: string)"
感谢您的评论,他们确实帮助思考了这个方向。