一个 put 自定义操作批准被添加到我们的 rails 3.1.3 应用程序的采购控制器中,用于更新 3 个参数。在 routes.rb 中添加了自定义路由,并使用 :method => :put 调用了 link_to。但是,“批准”不会重置参数。
这是采购 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 >
需要批准?是在采购控制器中定义的一种方法,用于查看是否需要批准采购。
这是批准的 rake 路由输出:
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
我们在上面的代码中遗漏了什么吗?非常感谢。