2015-05-06 40 views
1

在我的項目,我有定位裝上respond_with文件@jobs

respond_to :json 
load_and_authorize_resource 

def show 
    respond_with @job_pattern 
end 

按照教程這裏http://blog.plataformatec.com.br/2009/08/embracing-rest-with-mind-body-and-soul/ 它的工作原理是這樣的:當一個請求到來時,例如用格式的XML,它會首先搜索模板在用戶/ INDEX.XML

所以我查job_patterns/index.json但沒有找到該名稱的任何文件

任何人都可以指導我在哪裏可以找到文件或在這裏如果是如何生成的輸出它不是與f ILE。

回答

2

因爲respond_to :json不呈現視圖,而是它調用render json: @job_pattern

render json:@job_pattern調用@job_pattern.to_json並將JSON字符串設置爲響應主體。您可以對XML或YML執行相同的操作。

這是軌道約定優於配置原理的一個例子 - 如果有show.json.[erb|haml]它優先。否則,rails將查找與控制器名稱(@job@jobs索引)對應的實例變量,並嘗試將其序列化爲JSON。

延伸閱讀:

1

對您的情況,您的操作是show,因此與show.json關聯的模板爲views/[namespace]/show.json

您應該創建此模板,或者如果未找到此模板,Rails將自動在傳遞給respond_with的對象上調用to_json

請參閱documentation

0

與產生的支架使用show.json.jbuilder爲模板文件的Rails的最近通話版本。 欲瞭解更多詳情: jbuilder