ruby-on-rails – 渲染后Rails退出控制器
发布时间:2020-12-17 04:36:54 所属栏目:百科 来源:网络整理
导读:我的控制器中有一个动作,我遇到了麻烦.这是我的第一个rails应用程序,所以我不确定有关rails的最佳实践. 我有一个名为Group的模型和一些进入它控制器的动作. 我编写了一个测试,该测试应该导致控制器因为组ID无效而在JSON中呈现错误.它不是渲染和退出,而是看起
我的控制器中有一个动作,我遇到了麻烦.这是我的第一个rails应用程序,所以我不确定有关rails的最佳实践.
我有一个名为Group的模型和一些进入它控制器的动作. 测试 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”} 调用渲染后控制器为什么不退出? 这段代码的目的是在没有找到传入ID的记录时正常恢复.这是做这样事的正确方法吗? 解决方法
就像@ user1022209所说,你可以添加返回退出动作:
render(:json => { :message => "group_id not found" }) and return 关于你的代码,我想我会这样写: def remove if(!Group.exists?(params[:group_id]) render :json => { :message => "group_id not found" } else @group = Group.find(params[:group_id] @group.destroy if @group.destroyed? render :json => { :message => "Success" } else render :json => { :errors => @group.errors.full_messages } end end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |