私は、ユーザが質問、回答、およびコメントを作成できる反応クライアントを使用して、rails 4.1に関する質問と回答のフォーラムを持っています。私は、アクティブなモデルのシリアライザを使用して、すべてのユーザアクティビティ(タイプに関係なく)を渡したいと思います。理想的には、これはcreated_atでソートされたオブジェクトの配列でなければなりません。私は配列を作成することができますが、プッシュメソッドは互いに上書きします。レールにユーザ所有のオブジェクトを結合する
個々のオブジェクト配列内にネストされた属性を使って作業するという迷路を避けるために、実際にハッシュを使用する必要があるかもしれませんが、少しのガイダンスが必要です。これは理にかなっていない場合は
は、Facebookがあなたの最近の活動を示す考える:noobの質問のための
def user_activity
activity = []
self.object.questions.each do |question|
activity.push(question)
end
self.object.answers.each do |answer|
activity.push(answer)
end
self.object.comments.each do |comment|
activity.push(comment)
end
end
感謝と申し訳ありません:
[
"You posted 'It's my birthday!' on 08/04/2017",
"You liked Tammy's post on 8/3/2017",
"You commented on Rihanna Tweets as Motivational Posters page on 8/1/2017"
]
user_activity方法。
あなたの 'user_activity'は最後に' activity'配列を返さなければなりません - また、私はAM :: Serializerを使うのは、文字列を出力したいだけで、オブジェクト、ハッシュのように)。このユーザー活動互換(=文字列)出力を必要とするすべてのモデルに含まれる単純なモジュールで十分です。私はこれを達成するための例を提供することができます – MrYoshiji
Woot!ありがとう@MrYoshiji。私はそれが私が忘れていた何かばかなものであることを知っていた。期待通りに働いた!ありがとう! –
私はこの時点でAMSと結婚していると思っていますが、余分な情報は気にしません。私たちは実際に非ユーザオブジェクト内の多くのレコードをシリアライズしています。 –