我开发了一个简单的玩具应用程序,它使用脚手架来模拟用户和微型帖子。这是我的user_controllerRails http休息架构
源 “railstutorial.org”
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy]
# GET /users
# GET /users.json
def index
@users = User.all
end
方法显示
# GET /users/1
# GET /users/1.json
def show
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
end
# POST /users
# POST /users.json
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
方法更新
# PATCH/PUT /users/1
# PATCH/PUT /users/1.json
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.json
def destroy
@user.destroy
respond_to do |format|
format.html { redirect_to users_url, notice: 'User was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:name, :email)
end
end
显示方法用于呈现类型为“users/1”类型的URL的用户页面。
但更新方法是更新我们用户的数据库,但在更新操作被调用后,它会将我们重定向到“users/1”URL。
在第一种情况下,http请求的类型是“GET”,它将路由给“显示”功能/操作,但是第二种情况是http请求的类型为“PATCH”,它将控制路由到“更新”功能,函数只需更新数据库,那么为什么以及如何将我们重定向到“users/1”。它是否在任何地方调用任何渲染代码?
我是初学者,所以如果问题有点傻,请原谅我,但如果有人能回答,这将是一个很大的帮助。
哦,谢谢。我不知道我是如何错过它的。谢谢。 – 2014-12-07 02:19:04