2012-07-19 126 views
0

我有列表(頁面#首頁),點擊我打開列表與評論(職位#顯示),其中我聲明變量@feed_items。在評論結束時,我對新評論有了simple_form(評論#創建)。問題:如果提交按鈕發生錯誤,我需要渲染帶有註釋的表單和帶有錯誤的表單。 我想在評論#創建:渲染simple_form錯誤

if @comment.save 
    ... 
else 
    render 'posts/show' 
end 

但在這種情況下,變量@feed_items沒有聲明是因爲方法的帖子#秀沒叫。當我嘗試寫入redirect_to時,我會看到包含註釋但沒有錯誤消息的列表。這個怎麼做?

回答

1

這是人們常犯的錯誤。 render方法只選擇要顯示的視圖,並且redirect_to方法再次執行重定向的操作。
當出現錯誤時,您可以調用render方法來選擇要顯示的視圖,並且必須手動分配此視圖需要解決的所有實例變量。
檢查Section 2.3.2從鐵軌指南:http://guides.rubyonrails.org/layouts_and_rendering.html

在你的情況下,它會是這樣的:

if @comment.save 
    ... 
else 
    # Populate the @feed_items in here again 
    render 'posts/show' 
end