###前提・実現したいこと
あるユーザーがそのメッセージを既読したかどうかを確認したいです。そのために二つの配列があり、該当するIDがあるかないかで、既読したかの判断をしたいと考えています。
###発生している問題・エラーメッセージ
あるユーザーが読むべきメッセージの配列A(ここでは自分の属するCoversationの最後のmessageを抽出してきています。)
[#<Message id: 1, conversation_id: 1, user_id: 2>, #<Message id: 2, conversation_id: 2, user_id: 3>]
自分(user_id:1)の既に既読しているメッセージの配列B
#<ActiveRecord::Relation [#<Notification id: 2, message_id: 1, user_id: 1, read: true, created_at: "2016-12-01 07:16:59", updated_at: "2016-12-01 07:16:59">, #<Notification id: 4, message_id: 2, user_id: 1, read: true, created_at: "2016-12-02 00:29:16", updated_at: "2016-12-02 00:29:16">]>
この2つの配列をぶつけて、読むべき配列Aのidが既に読んでいる配列Bのmessage_idにあれば、既読
なければ、未読有という判別をしたいと考えています。
###該当のソースコード
ruby
1 unread=[] 2<% @配列A.each do |lastmessage| %> 3 <% 配列B.each do |n| %> 4 5<% unless lastmessage.id == n.message_id %> 6 7<% @myunreadmessage << n.message_id %> 8 9<% end %>
としたのですが、当たり前ですが、下記のように本来読んでいるのにもかかわらずループの書き方がわるく、ぶつけることが出来ていません。
[2, 1]
他にも
<% if next lastmessage.id == n.message_id %>
等も試しましたが上手くいっていません。このように二つの配列のある要素を比較するには、どのようにすればよいのでしょうか。
###補足情報(言語/FW/ツール等のバージョンなど)
ruby2.3
rails 4.2.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。