2015-05-05 17 views
0

我試圖用一句話來盡我所能來描述我的問題,但它很難。在部分評論形式的失敗.save的else語句中呈現什麼

我有一個有意見的故事。在我的故事show.html.erb中,我加載了我的評論和評論表單(comments/_comment_form.html.erb),這很有效。我會在評論控制器中處理評論。

註釋textarea是必需的,但我不知道在失敗的.save的else語句中加載了什麼。

我想用部分顯示錯誤的表單重新載入我的故事的show.html.erb。

我的評論創建部分看起來是這樣的:

def create 
    @comment = current_user.comments.create(comment_params) 

    if @comment.save 
    flash[:success] = 'Your comment was added!' 
    redirect_to Story.friendly.find params[:story_id] 
    else 
    # what to put here to show my comment form with errors 
    end 
end 

我使我的commentform和評論部分我show.html.erb像這樣:

<%= render 'comments/comment_form' %> 

如果您需要了解更多信息,請告訴我。提前致謝!

+0

一件事重定向到同一個頁面,你在成功的情況下,這樣做只是改變閃光燈[:錯誤] =「您的留言」 –

回答

2

可以填充flash錯誤消息和渲染edit行動(與您的形式):

你可以做
flash[:error] = @comment.errors.full_messages 
render :edit 
+0

感謝您的建議,目前工作,但我想以與正常形式相同的方式工作。例如,我可以在每個字段中添加樣式和錯誤消息,並以紅色邊框顯示。 在我的故事中添加表單字段被標記爲field_with_errors類等。是不是有一種方法來重新渲染我的部分與標記錯誤? – berentrom

+0

@berentrom:你可以渲染相同的部分,但用用戶輸入和錯誤描述填寫字段,你可以使用會話來實現它。如果您在實施此方法時遇到更多問題,最好發佈一個新問題。 – potashin

+0

如果我不能按照常規方式做,我會在問一個新問題之前找出如何在會話中使用它。這是我的原始問題,看看我是否可以只重新渲染部分錯誤,像一個正常的形式。 – berentrom