如何在to_json / to_xml中仅选择关联对象的一个​​元素

时间:2010-07-28 12:51:25

标签: ruby-on-rails json select associations

我有以下问题。我的应用程序(api的原型)应该能够对params(如语言)做出反应。 我已经能够通过发送一个包含相关对象的内部对象作为JSON来响应请求。但现在我想通过参数选择关联的对象。  我的代码:

object.to_json(include => {
   :texts_in_diff_languages => {
     #here i should be able to select only languages equal to a given parameter (params[:language])
   }
})
你知道吗?谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我试着用另一种方式解释它:  我有三张桌子,一张叫书,叫做文本,第三语言。在Book has_many文本和一个文本有一种语言。 现在我想在BooksController中编写一个方法,该方法返回一个只包含书籍的JSON:title,book:text:特定语言的内容。 我想从参数(params [:language_id])获取这种语言。 你现在明白了吗?

我的代码:(选择一本书并包含所有语言的所有文本)

render :json => @book.to_json(
 :only => [:title],
 :include => { 
  :texts => {
   :include => {
    :languages
   }
  }
 })