テーブル内の特定の値を1つの列に持つすべてのエントリを取得しようとしていますが、クエリはその列にnil値を返します。アクティブレコード.whereは、要件に一致しない結果を見つけます。
Merit::ActivityLog.where(:related_change_type== 'Merit::BadgesSash')
私はあなたのクエリがされるべきだと思うエントリ
#<Merit::ActivityLog id: 60, action_id: 102, related_change_type: nil, related_change_id: nil, description: "description text", created_at: "2016-07-12 19:58:05">
シンボルと文字列の比較のためにあなたのコードは動作しません: 'related_change_type == 'Merit :: BadgesSash' falseを返します。基本的にクエリの結果は次のようになります。 'Merit :: ActivityLog.where(false)'は、db内のすべてのレコードを返します。以下の私の答えを参照してください – oreoluwa