2013-01-09 38 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 

这是假设你有一个购买和新路径...虽然它会帮助,如果你可以让我们知道你正在得到什么错误

相关问题