最後の質問が編集でいっぱいになるのを避けるために、これのデバッグに関する新しい質問をスピンオフしています。元の質問は、このNeo4j gem - 複数のノード/関係を摘み取ることでした
これは私が行き着いたところです。日の検出にはいくつかの欠陥がありますが、クエリとしては今のところ機能します。@collection は、書かれたとおりに多くのものを返します。
イベント.rb
def self.reminder
one_day = 1.day.to_i
time = Time.zone.now.to_i
@collection = Event.as(:e).where( "( ( e.date_start - {current_time} ) / {one_day_p} ) < {one_p} " ).users(:u, :rel).where(setting_reminder: true).rel_where(reminded: false ).params(one_day_p: one_day, current_time: time, one_p: 1).pluck(:e, 'COLLECT(u)', 'COLLECT(rel)')
@collection.each do |event, users, rels|
users.each_with_index do |user, i|
UserMailer.reminder(event,user[i]).deliver
end
rels.each_with_index do |rels, i|
rels[i].reminded = true
end
end
end
最後の回答と同じように元々持っていましたが、ユーザーのインデックスと各ブロック内にネストされたrelの両方を追跡する必要があると思います。
Rails Cで実行すると、実行するEvent.reminder
と取得されます
TypeError: 0 is not a symbol
ネストされたループの何が問題になっていますか?