2013-01-09 35 views
0
到URL
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 

我想無論是Rails的控制器防守創建重定向後保存

A - 重定向到URL,或其他控制器的路徑,或

乙 - 刷新他們從訂購的形式(new_purchases_path)和flash:注意用戶他們的購買成功。當我嘗試添加一個Url(這將是一個感謝信息頁),我得到語法錯誤。此代碼將用戶重定向到索引列表(這對他們不可用)

如果我取出def create,它會默認閃爍通知並顯示它們的完成格式。我正在使用simple_form,我不知道如何覆蓋這些默認值。任何建議至少重定向到一個網址?

回答

3

個實例:

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 

乙 - 刷新它們從(所述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 
+0

我試過使用 'render:action =>「new」,:notice =>「yay」' 這是令人耳目一新的形式,但通知無效。如果我注意到這個通知,它會再次將我列入清單。奇怪。 – nil

+0

是的,所以只是:通知不起作用。訂單有效。沒有任何困難 – nil

+0

我用redirect_to URL去了!多謝你們! – nil

1

這裏是一個創建方法,我今天

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 

這是假設你有一個購買和新路徑...雖然它會幫助,如果你可以讓我們知道你正在得到什麼錯誤

相關問題