簡體   English   中英

Rails 4:提交表單后,參數未傳遞回視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM