1
对于Rails来说,我还是一个新手,并且很难理解Rails中路径系统是如何工作的。Rails渲染路径路径
在我的routes.rb我创建别名为注册:
match 'signup' => 'user#new'
resource :user, :controller => 'user'
的作用是存在的,要去/注册显示正确的行动。到现在为止还挺好。
现在,当我提交我的注册表单时,它像往常一样运行POST的创建操作。这里是我卡住的地方。
如果注册失败,我想再次向用户显示注册表单。一种选择是做一个“新的”渲染,但是这需要用户/用户而不是/注册。
UserController的
class UserController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to root_url
else
render "new"
end
end
end
任何帮助表示赞赏!
更新 - 发现的解决方案
新增2比赛路线为/注册,使用:通过选项
match 'signup' => 'user#new', :as => :signup, :via => 'get'
match 'signup' => 'user#create', :as => :signup, :via => 'post'
这样的应用程序知道张贴到时/注册它应该运行的创建动作,并且当http方法得到时,它使用新的动作。
控制器标记与上面发布的相同。
嗨Hiasinho,谢谢你的回答。这将在重定向到注册时起作用。但是,我想保留用户对象,以便预先填写表单。然而你的回答让我朝着正确的方向前进。我添加结果。 –