2013-04-23 57 views
0

在創建類似於您使用to_json時的方式時,是否可以包含方法或嵌套屬性?哈希包含方法和/或嵌套屬性

當使用to_json我可以包括published_events方法和一些嵌套的方法:

render :json => @venue.to_json(:include => {:published_events => {:methods => :to_param, :include => :occurrences}}) 

這有可能產生類似項目的哈希什麼時候做?

@area_attractions = Venue.find(:all, :conditions => ['attraction = ? AND featured = ?', true, true], :limit => 8) 

hash = { :main => @main_features, :local_hotspots => @local_hotspots, :area_attractions => @area_attractions } 

編輯: 我最終渲染這個散列出來的JSON反正:

render :json => hash.to_json 
+1

僅供參考,(基於散列的發現者被棄用的Rails 4](HTTP:/ /edgeguides.rubyonrails.org/4_0_release_notes.html#active-record-deprecations)。 – 2013-04-24 00:06:48

回答

0

散列中的項目可以/仍將包括方法時to_json被稱爲

render :json => hash.to_json(:methods => [:image_url, :to_param, :thumb_url]) 
0

搜索方法返回數組,而不是哈希。試試這個:

hash = { :main => @main_features, 
     :local_hotspots => @local_hotspots, 
     :area_attractions => Hash[*@area_attractions] } 
+0

這會導致無效的參數數量錯誤 – 2013-04-23 20:47:20