我在我的控制器中有一個操作,我遇到了麻煩。這是我的第一個rails應用程序,所以我不確定圍繞rails的最佳實踐。渲染後導軌退出控制器
我有一個模型叫集團和一些行動,在它的控制器。 我寫了一個測試,應該會導致控制器由於無效的組ID而在JSON中顯示錯誤。而不是渲染和退出,它看起來像控制器正在渲染並繼續執行。
測試
test 'should not remove group because of invalid group id' do
post(:remove, {'group_id' => '3333'})
response = JSON.parse(@response.body)
assert_response :success
assert_equal 'Success', response['message']
end
控制器動作
# Post remove
# group_id
def remove
if((@group = Group.find_by_id(params[:group_id])) == nil)
render :json => { :message => "group_id not found" }
end
@group.destroy
if(!Group.exists?(@group))
render :json => { :message => "Success" }
else
render :json => { :errors => @group.errors.full_messages }
end
end
在控制器中,if語句執行第一:render :json => { :message => "group_id not found" }
但@group.destroy
仍在執行。這對我來說似乎是反直覺的,我會認爲渲染方法應該退出控制器。
爲什麼在調用render
後控制器不能退出?
的代碼塊的目的是爲了正常恢復時沒有記錄可以與ID傳遞的被發現。這是做這種事的正確方法嗎?
優秀。添加一個回報效果很好。 – codysehl