2009-06-04 6 views
0

Ich versuche, ein Benutzerverwaltungssystem zu erstellen, bei dem Benutzer per Drag-and-Drop in verschiedene Gruppen gezogen werden können (Kopieren und Verschieben von Benutzern). Ich verwendeRouting-Problem

drop_receiving_element "move_drop_zone_1", 
    :update => "users", 
    :url => move_user_path(:target_node_id => node.id), 
    :method => :put, 
    :accept => "move_user", 
    :hoverclass => "node-active" 

, um eine Dropzone zu definieren.

Ich habe ein Problem mit dem Pfad. Oberhalb Code führt

move_user_url von erzeugen fehlgeschlagen {: action => "move", : controller => "Benutzer", : target_node_id => 2} erwartet: {: action => "move", : controller => "Benutzer"}, diff: {: target_node_id => 2}

In meinen Routen i map.resources :users, :member => { :move => :put, :copy => :put } definiert

Offenbar Rails ist nicht die target_node_id erwartet aber wie kann Ich füge bei Dies?

dank Stijn

Antwort

2

Die move_user_path ist ein "Mitglied" Pfad. Daher müssen Sie auch die ID für das Benutzerelement angeben, auf das Sie sich beziehen.

So könnten Sie haben:

move_user_path(:id => current_user.id, :target_node_id => node.id) 

Oder müssen Sie Ihre Routen ändern:

map.resources :users, :collection => { :move => :put, :copy => :put } 

Und dann Ihren Weg wird:

move_users_path(:target_node_id => node.id) 

this helps .

Jörg

+0

Danke für die Antwort ist. Noch ein paar Probleme ... Wenn ich mache <% = link_to "move user", move_users_path (: target_node_id => 1),: Methode =>: put%> die Update-Methode des Benutzers Controller wird aufgerufen und nicht die Bewegung. <% = link_to "move user", move_users_path (: target_node_id => 1)%> Die show-Methode des Benutzer-Controllers wird aufgerufen und nicht die Verschiebung. Ich definierte map.resources: Benutzer,: collection => {: move =>: put,: copy =>: put} in Routen – Tarscher