找到在respond_with @jobs上加载的文件

时间:2015-05-06 11:57:44

标签: ruby-on-rails ruby

在我的项目上我有

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,它将首先在users / index.xml中搜索模板

所以我检查了job_patterns / index.json,但没找到任何具有此名称的文件

任何人都可以指导我在哪里可以找到该文件,或者如果该文件不在文件中,如何生成输出。

3 个答案:

答案 0 :(得分:2)

因为respond_to :json不呈现视图,而是调用render json: @job_pattern

render json:@job_pattern调用@job_pattern.to_json并将JSON字符串设置为响应正文。您可以使用XML或YML执行相同的操作。

这是关于配置哲学的rails约定的示例 - 如果有show.json.[erb|haml]则优先。否则,rails将查找与控制器名称对应的实例变量(@job@jobs作为索引)并尝试将其序列化为JSON。

进一步阅读:

答案 1 :(得分:1)

在您的情况下,您的操作为show,因此与show.json中关联的模板为views/[namespace]/show.json

您应该创建此模板,或者如果找不到此模板,Rails将自动调用传递给respond_with的对象的to_json

请参阅documentation

答案 2 :(得分:0)

带有生成脚手架的Rails的最新版本使用show.json.jbuilder作为模板文件。 有关它的更多信息: jbuilder