輸出 JSON 而不是 HTML

class UsersController < ApplicationController
  def index
    hashmap_or_array = [{ name: "foo", email: "foo@example.org" }]

    respond_to do |format|
      format.html { render html: "Hello World" }
      format.json { render json: hashmap_or_array }
    end
  end
end

此外,你還需要以下路線:

resources :users, only: [:index]

這將以兩種不同的方式響應/users 的請求:

  • 如果你訪問/users/users.html,它將顯示一個內容為 Hello World 的 html 頁面
  • 如果你訪問/users.json,它將顯示一個 JSON 物件,其中包含:
[
  {
    "name": "foo",
    "email": "foo@example.org"
  }
]

如果要確保路由僅響應 JSON 請求,則可以省略 format.html { render inline: "Hello World" }