2015-10-27 189 views
0

我已創建的產品視圖推車和要顯示的錯誤消息渲染在視圖

視圖/產品/ index.html.erb

<% if @order.errors.any? %> 
<div class="error error-success note-shadow"> 
    <% @order.errors.full_messages.each do |msg| %> 
    <p><%= msg %></p> 
    <% end %> 
</div> 
<% end %> 

控制器/ orders_controller.html錯誤消息。 erb

def create 
    @order = Order.new(params_slip) 
    respond_to do |format| 
    if @order.save 
     format.html { redirect_to :back, 
     notice: 'Order was successfully placed.'} 
    else 
     format.html { redirect_to :back } 
    end 
end 
end 

我正在使用上面的方法試圖顯示錯誤消息,但它沒有解決。我認爲這是因爲我的創建操作在orders_controller中,而我無法將錯誤消息添加到產品視圖中?

回答

0

根本原因是@order實例變量沒有通過重定向過程進行,所以這就是您沒有看到任何錯誤消息的原因。 你可以把錯誤信息到flash容器

if @order.save 
[do something] 
else 
flash[:order_errors] = @order.errors.full_messages 
redirect_to :back 
end 

<% if flash[:order_error] %> 
[display it here] 
<% end %> 
0

我不知道爲什麼你把你的形式index.html.erb。你最好把你的表格放在你的new.html.erb

嘗試改變:

format.html { redirect_to :back } 

分爲:

render "index" 

我希望這有助於你