簡體   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