Rails返回JSON而不是HTML

Rails返回JSON而不是HTML,html,ruby-on-rails,json,rest,crud,Html,Ruby On Rails,Json,Rest,Crud,我有一个RubyonRails web应用程序,但我希望它像web服务一样运行,而不是用HTML返回JSON。我希望所有CRUD方法都使用这个。我希望整个页面呈现为JSON,到目前为止,我只在Show和Edit中为User变量实现了这一点。但我希望整个页面,所有CRUD方法都显示为JSON def index @users = User.all end def show @user = User.find(params[:id]) # Render json

我有一个RubyonRails web应用程序,但我希望它像web服务一样运行,而不是用HTML返回JSON。我希望所有CRUD方法都使用这个。我希望整个页面呈现为JSON,到目前为止,我只在Show和Edit中为
User
变量实现了这一点。但我希望整个页面,所有CRUD方法都显示为JSON

    def index
    @users = User.all
end


def show
    @user = User.find(params[:id])

    # Render json or not
    render json: @user
end


def new
    @user = User.new
end


 def edit
    @user = User.find(params[:id])
end


def create
    @user = User.new(user_params)

    if @user.save
        redirect_to @user
    else
        render 'new'
    end
end


def update
    @user = User.find(params[:id])

    if @user.update(user_params)
        redirect_to @user
    else
        render 'edit'
    end
end


def destroy
    @user = User.find(params[:id])
    @user.destroy

    redirect_to users_path
end
到目前为止,我发现了这个
呈现json:@user
,但我希望整个页面呈现为json,而不仅仅是变量。和每个URL,对于所有CRUD方法

编辑:如果我添加到我的
routes.rb
资源:用户,默认值:{format::json}中,我会收到错误消息“缺少模板用户/索引,应用程序/索引带有{:locale=>[:en],:formats=>[:json],:variants=>[,:handlers=>[:erb,:builder,:raw,:ruby,:coffee,:jbuilder]}”

<

respond_to do |format|
  format.html { @users }
  format.json { render json: json_format(@users) }
end
对于所有其他的用户来说,它是一个对象

respond_to do |format|
  format.html { @user }
  format.json { render json: json_format(@user) }
end

在此之后,您将拥有和页面,这些页面呈现为JSON和HTML,而没有“.JSON”

是否可以在URL中不特别调用.JSON而呈现JSON?e、 所以它会自动显示JSON?所以如果你只需要JSON,你必须按照你意识到的那样做。在您编写resources:users的路由中,默认值为:{format:'json'}。在控制器呈现json中:@user或@users。如果没有帮助,只需在控制台中显示本地服务器返回的内容即可