[英]Rails 4: Params not passed back to view after form submission
我有一個創建項目的基本表格...
<%= form_for(@project, :url => {:action=>'create'}) do |f| %>
<%= f.text_field(:name, {class: "form-control"}) %>
<%= f.text_area(:instructions, {class: "form-control"}) %>
<%= f.submit('Create Project') %>
<% end %>
在控制器中,我有兩個操作:
def create
@project = Project.new( project_params )
if @project.save
flash[:notice]= "New project created!"
redirect_to(:action=>'index')
else
flash[:error]="Problem creating project"
redirect_to(:action=>'new')
end
end
def new
@project = Project.new()
end
我有幾個驗證,可以防止字段為空。 當表單失敗時,我再次重定向回“新”頁面,但是@project
變量始終為空。
為什么?
您不想重定向到錯誤,而是要呈現:這樣做意味着將使用來自create
操作(及其URL)的變量來呈現new
頁面,並按預期預填充表單字段。
將您的控制器操作更改為此:
def create
@project = Project.new( project_params )
if @project.save
flash[:notice]= "New project created!"
redirect_to(:action=>'index')
else
flash[:error]="Problem creating project"
render :new
end
end
更改redirect_to(:action=>'new')
以render 'new'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.