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,謝謝你的回答。這將在重定向到註冊時起作用。但是,我想保留用戶對象,以便預先填寫表單。然而你的回答讓我朝着正確的方向前進。我添加結果。 –