Rails返回JSON而不是HTML
我有一个RubyonRails web应用程序,但我希望它像web服务一样运行,而不是用HTML返回JSON。我希望所有CRUD方法都使用这个。我希望整个页面呈现为JSON,到目前为止,我只在Show和Edit中为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
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。如果没有帮助,只需在控制台中显示本地服务器返回的内容即可