0
def create
  @purchase = Purchase.new(params[:purchase])

  if session[:purchase_id] != @purchase.save
    redirect_to(@purchase, :notice => "Thank you. You good lookin person you.")
  end
end

私はどちらかをしようとしています

A-URL、または他のコントローラーパスにリダイレクトする、または

B-注文したフォーム(new_purchases_path)を更新し、フラッシュ:購入が成功したことをユーザーに通知します。URLを追加しようとすると(ありがとうメッセージページになります)、構文エラーが発生します。このコードは、ユーザーをインデックスリストにリダイレクトします(これにはアクセスできません)。

を取り出すdef createと、デフォルトで通知が点滅し、完成したフォームが表示されます。simple_formを使用していますが、これらのデフォルトをオーバーライドする方法がわかりません。少なくともURLにリダイレクトすることについて何か提案はありますか?

4

2 に答える 2

4

例:

A-URLまたは他のコントローラーパスにリダイレクトします

  redirect_to :action => "show", :id => 5
  redirect_to "http://www.rubyonrails.org"
  redirect_to  new_purchases_path
  redirect_to  purchases_url
  redirect_to :back

B-注文したフォームを更新します(new_purchases_path)

  render :action => "new"

編集:

フラッシュメッセージの一般的な例を次に示します。

if @foo.save
  redirect_to foos_path, :notice => "Foo saved"
else
  flash[:notice] = "Some errors occured"
  render :action => "new"
end
于 2013-01-09T15:02:15.693 に答える
1

これが私が今日作ったcreateメソッドの例です

def create
 @book = Book.new(params[:book])
 if @book.save
  redirect_to searchbook_path, notice: 'Book was successfully saved'
 else
render :action => 'results'
end

終わり

だからあなたの場合、あなたは多分これを試すことができます

def create
@purchase = Purchase.new(params[:purchase])
if @purchase.save
 redirect_to purchase_path, :notice 'Thanks for your purchase'
else
render :action => 'new'
end
end

これは、購入と新しいパスがあることを前提としています...発生しているエラーをお知らせいただければ助かりますが、

于 2013-01-09T15:01:37.503 に答える