1
我有以下to_json在我看來選項: <%=raw @forums.to_json(:methods => [:topic_count, :last_post]) %>;
ActiveRecord的to_json指定爲包括方法
,並在模型中我有以下方法:
def last_post
post = ForumPost.joins(:forum_topic).where(:forum_topics => {:forum_id => self.id}).order("forum_posts.created_at DESC").first
return post
end
然而ForumPost包含與論壇主題(belongs_to :forum_topic
)的關係,我想在我的json中包含這個ForumTopic,所以我最終得到{...,「last_post」:{...,「forum_topic」:{...} ...}, ...}。我怎樣才能做到這一點?
原因我想保持它的模型是因爲不是每次我使用to_json我想包括所有這些數據。在這個例子中,我特別包含了太多的數據,因爲打印出的json被用來引導骨幹網絡。 ForumPost和Forum除了這個視圖外,其他地方都轉換成json,我不想每次都包含這些數據。 – Tomdarkness
你可能想看看jose valim的活動模型序列化器https://github.com/josevalim/active_model_serializers我還沒有使用它,但它看起來像管理不同目的的不同類型的serilization的正確方法。爲to_json或as_json創建這些瘋狂的選項非常可怕,這似乎是一個好方法。 – joshuacronemeyer