我的rails应用程序中有一些奇怪的东西,如果表单格式错误,我会尝试将用户重定向到特定页面。它有效,但URL与视图不匹配。
我使用rails g scaffold User
生成的文件。我在模型文件中添加了特定条件来检查用户输入以查看表单是否格式正确,如果没有,则将其重定向到连接视图。
我在两个不同的控制器之间重定向
所以我转过身了(app / controller / users_controller.rb):
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to root_path, 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
进入这个:
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to root_path, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :template => 'pages/connection' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
我尝试了,我已经很好地重定向到 pages / connection.rb ,但我浏览器中的网址是:http://url:8080/users
而不是http://url:8080/connection
。因此,如果我刷新,它会将 pages / connection.rb 留给 users / 。
此外, model / user.rb 的错误消息也未显示。
我的代码中出了什么问题?
答案 0 :(得分:0)
您正在渲染模板页面/连接,您没有将用户重定向到另一个控制器。
format.html { render :template => 'pages/connection' }
渲染和重定向不一样