RailsでMongoidを使用しています。sprint
Aと aの 2 つのモデルがありbuild
ます。Abuild
にはたくさんあるsprints
スプリント.rb:
class Sprint
include Mongoid::Document
belongs_to :build
end
build.rb:
class Build
include Mongoid::Document
has_many :sprints
end
では、現在のスプリントを含むsprints
すべてを取得したいので、次のようにします。builds
def builds
Build.where("sprint" => self)
end
私show.html.erb
の forsprints
では、次のことを行います。
<%= render @sprint.builds %>
ただし、例外があります。
undefined method
bson_dump ' スプリントの場合:0x007fd1acb68200
builds メソッドを次のように変更した場合:
def builds
list = []
Build.all.each do |build|
if build.sprints.include? self
list.push(build)
end
end
list
end
その後、すべてが正常に機能し、意図した結果が返されます。問題は何ですか?
編集: また、すべてのビルドにスプリントがあるわけではないことも付け加えておく必要があります。つまり、一部のビルドではスプリントの値が nil になる可能性があります。