我正在使用带有 Rails 的 Mongoid。我有两个模型: Asprint
和 a build
。Abuild
有很多sprints
冲刺.rb:
class Sprint
include Mongoid::Document
belongs_to :build
end
构建.rb:
class Build
include Mongoid::Document
has_many :sprints
end
在sprints
中,我想获取builds
包含当前 sprint 的所有内容,所以我这样做:
def builds
Build.where("sprint" => self)
end
在我show.html.erb
的 for 中sprints
,我这样做:
<%= render @sprint.builds %>
但是,我得到一个例外:
undefined method
bson_dump ' 用于 Sprint:0x007fd1acb68200
如果我将 builds 方法更改为:
def builds
list = []
Build.all.each do |build|
if build.sprints.include? self
list.push(build)
end
end
list
end
然后一切正常,我得到了预期的结果。可能是什么问题?
编辑: 我还应该补充一点,并非所有构建都有 sprint,这意味着某些构建可能对 sprint 具有 nil 值。