加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Ruby on Rails中保留失败表单提交的URL

发布时间:2020-12-17 02:29:39 所属栏目:百科 来源:网络整理
导读:我目前正在通过各种Rails教程,但似乎都建议失败的表单提交应该使用渲染来输出带有错误的表单.例如,create方法如下所示: def create @user = User.new(params[:user]) if @user.save flash[:success] = "Welcome to the Sample App" redirect_to @user else
我目前正在通过各种Rails教程,但似乎都建议失败的表单提交应该使用渲染来输出带有错误的表单.例如,create方法如下所示:

def create
  @user = User.new(params[:user])
  if @user.save
    flash[:success] = "Welcome to the Sample App"
    redirect_to @user
  else
    @title = "Sign up"
    render 'new'
  end
end

这具有预期的效果,但意味着如果我在http://localhost:3000/users/new处有一个新的用户表单并且发生错误,我会在http://localhost:3000/users获得相同的错误表单

有没有办法确保我转到http://localhost:3000/users/new?

我想过使用重定向而不是渲染’new’,但这会导致显示表单错误的问题. Rails上的某个人IRC指示我做一个客户端验证的方法,但这似乎避免了这个问题.

解决方法

我的用户注册表单遇到了类似的问题.由于我没有在那里使用RESTful路由,我能够通过以下路由解决它:

resources :users,:except => [:new,:create] do
  ...
end
get  "/signup" => "users#new"
post "/signup" => "users#create"

并以新的形式:

form_for @user,:url => signup_path do ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读