0

これどうやってするの?/businesses/businesses/newcreate/businesses/new


これは私の現在のコードです:

def create
  @business = Business.new(params[:business])
   if @business.save
    redirect_to :back, :notice => "You have successfully added a new business."
   else
    render :action => 'new', :notice => "Please try again."
  end
end
4

2 に答える 2

1

検証が失敗した場合、リダイレクトしないでください。同じページにとどまるために私がすべきことは次のとおりです。

def create
  @business = Business.new(params[:business])
  if @business.save
    redirect_to businesses_path
  else
    render :new
  end
end
于 2012-05-27T17:14:26.900 に答える
1

実際にはリダイレクトではありません。フォーム用に生成された html コードを確認すると、次のように表示されます。

<form accept-charset="UTF-8" action="/business" 
      class="new_business" id="new_business" method="post">

これは、ロードするように要求されたページが「/business/create」ではなく「/business」であることを意味します。そのため、ブラウザのアドレス バーに表示されます。これは、作成アクションでのリダイレクトとは関係ありません。そこで、前のフォームをレンダリングするだけです。これはエラーではありません。実際に動作しています。少し混乱するかもしれませんが、それほど問題ではないと思います。本当に必要な場合は、JavaScriptを使用して修正できます。

于 2012-05-27T22:52:40.577 に答える