[英]the ruby source code generated by rails
我是红宝石和铁轨的新手。
按照ror文档中的指南,我创建博客应用程序。
但是,当我看到生成的代码时,例如发现我无法理解它们:
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @post }
end
end
repond_to是一个方法(不是吗?),下面的块是参数吗?
但是,该块内部的代码是什么意思?
format.html # show.html.erb
format.json { render json: @post }
format.html是方法的名称还是其他名称?
和{ render json: @post }
>怎么样?
respond_to
方法可帮助您以请求的格式交付内容。 例如,如果调用/posts/1.json
,则响应将是JSON文件。 如果是/posts/1.html
,则响应将是HTML页面。 没有提供扩展名时的默认值是呈现HTML。
format.json
方法告诉Rails在请求该扩展名时该怎么做,例如,如果您想为每个JSON请求增加一个计数器,而不是为HTML请求增加计数器,则可以执行以下操作:
format.json {
counter = counter + 1
render json: @post
}
如果不为format.json
方法提供块,Rails会自动尝试在views/posts/
查找show.json.erb
文件,然后进行渲染。 在您提供的方法中, render json: @post
告诉Rails立即渲染它,而不是寻找文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.