0
将自定义操作批准添加到我们的rails 3.1.3应用程序中,以便更新3个参数。自定义路由被添加到routes.rb中,link_to被调用:method =>:put。但是,“批准”不会重置参数。为什么把自定义操作在rails 3.1中不起作用?
这里是采购index.html.erb的的link_to:
<% @sourcings.each do |src| %>
...
<%= link_to 'Approve', approve_project_sourcing_path(@project, src), :method => :put if need_approve?(src) %>
<% end >
need_approve?是在资源控制器中定义的一种方法,用于查看是否需要批准采购。
这里是输出耙路线批准:
approve_project_sourcing PUT /projects/:project_id/sourcings/:id/approve(.:format) {:action=>"approve", :controller=>"sourcings"}
这里是批准采购控制器:
def approve
@project = Project.find(params[:project_id])
@sourcing = @project.sourcings.find(params[:id])
if vp_eng?
@sourcing.update_attributes!(:approved_by_vp_eng => true, :approve_vp_eng_id => session[:user_id],
:approve_date_vp_eng => Time.now, :as => :role_update)
elsif ceo?
@sourcing.update_attributes(:approved_by_ceo => true, :approve_ceo_id => session[:user_id],
:approve_date_ceo => Time.now, :as => :role_update)
end
redirect_to project_sourcing_path(@project, @sourcing)
end
任何我们在上面的代码错过了什么?非常感谢。
上述哪一部分无法正常工作?你会得到什么错误或不受欢迎的行为? – Martijn 2012-04-10 15:31:52
您为我们提供了许多不必要的代码,但未提供哪些方法'vp_eng?'和'ceo?'是 – MikDiet 2012-04-10 15:32:09
@ sourcing.update_attributes不起作用。它已执行,但:approved_by_vp_eng未重置。 – user938363 2012-04-10 15:35:33