当您通过创建操作在rails中创建用户时,该网址将更改为
http://myapplication.com/users with POST
在被重定向到其他地方之前。如果验证失败,则会显示保留上述URL。如果你再刷新,你最终会进入索引页面(因为它现在是GET)。
我希望如果验证失败,则网址将保持为
http://myapplication.com/users/new
由于我没有索引页面,这导致了我的问题。有没有办法解决这个问题?
答案 0 :(得分:1)
这取决于控制器中respond_to
块中的逻辑。
这是users_controller.rb
中创建操作的典型示例:
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
因此,如果保存失败,则会再次呈现new
操作。
答案 1 :(得分:0)
在您的UsersController中,请执行以下操作:
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to root_url # save success will return to root page
else
render 'new'
end
end