我在我的控制器中有一个操作,我遇到了麻烦。这是我的第一个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