2012-04-10 10 views
0

Ein Put benutzerdefinierte Aktion genehmigt wurde hinzugefügt, um unsere Rails 3.1.3 App in Sourcing-Controller für die Aktualisierung von 3 Parametern. Benutzerdefinierte Route wurde in routes.rb hinzugefügt und link_to wurde aufgerufen mit: method =>: put. Die Parameter werden jedoch nicht durch 'genehmigen' zurückgesetzt. HierWarum benutzerdefinierte Aktion in Schienen 3.1 nicht funktioniert?

ist die link_to in der Beschaffung index.html.erb:

<% @sourcings.each do |src| %> 
... 
<%= link_to 'Approve', approve_project_sourcing_path(@project, src), :method => :put if need_approve?(src) %> 
<% end > 

need_approve? ist eine Methode, die im Sourcing-Controller definiert ist, um zu sehen, ob das Sourcing genehmigt werden muss. Hier

ist der Rake-Routen Ausgang für Entlastung zu erteilen:

approve_project_sourcing PUT /projects/:project_id/sourcings/:id/approve(.:format)          {:action=>"approve", :controller=>"sourcings"} 

Hier wird die in der Beschaffung Controller genehmigen ist:

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 

Ist alles, was wir oben im Code verpaßt? Vielen Dank.

+0

Welcher Teil der oben genannten funktioniert nicht genau? Welchen Fehler oder unerwartetes Verhalten erhalten Sie? – Martijn

+0

Sie liefern uns viele unnötigen Code, aber nicht, welche Methoden 'vp_eng?' Und 'ceo?' Sind – MikDiet

+0

@ sourcing.update_attributes funktioniert nicht. Es wurde ausgeführt, aber das: approved_by_vp_eng wurde nicht zurückgesetzt. – user938363

Antwort

0

Das Problem besteht darin, die update_attributes aufzurufen. Bei Hash-Parametern lautet die korrekte Syntax:

Für die Hash-Parameter wird eine Klammerklammer benötigt.

Verwandte Themen