我们在采购控制器中添加了自定义操作批准。操作批准更新采购属性。以下是调用批准的方式:
<% link_to 'Approve', approve_project_sourcing_path(@project, src), :method => :put if need_approve?(src) %>
通过指定:method =&gt; :put,属性可以更新。这是批准失败的rspec代码:
it "should approve for vp_eng" do
session[:vp_eng] = true
session[:ceo] = false
proj = Factory(:project)
u = Factory(:user)
session[:user_id] = u.id
src= Factory(:sourcing, :input_by_id => u.id, :approved_by_vp_eng => false, :approved_by_ceo => false)
put 'approve', :project_id => proj.id, :id => src.id, :sourcing => {:approved_by_vp_eng => true, :approve_vp_eng_id => session[:user_id],
:approve_date_vp_eng => Time.now }
src.reload.approve_vp_eng_id.should == session[:user_id]
response.should redirect_to project_sourcing_path(proj, src)
end
上面代码的问题是src没有更新,即使在我们的执行测试中,属性已按预期更新。
我们的问题是如何用put来批准行动?非常感谢。
答案 0 :(得分:0)
自定义更新操作的rpsec与RESTful更新操作的rspec完全相同。否:方法=&gt; :需要放。