繁体   English   中英

Rails生成的ruby源代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM