2009-06-04 23 views
0

ユーザーをドラッグ&ドロップして別のグループ(ユーザーのコピーと移動)を行うことができるユーザー管理システムを作成しようとしています。私はルーティングの問題

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" 

を使用してドロップゾーンを定義します。

パスに問題があります。期待: {:{:コントローラ=> "ユーザ"、 :target_node_id => 2:=> "移動"、 アクション}

move_user_urlのコード結果の上 から生成することができなかったアクション=> "移動"、 :コントローラ=> "ユーザー"}、差分: {:target_node_id => 2} iは

が明らかにどのようにすることができるtarget_node_idを期待していないが、レールmap.resources :users, :member => { :move => :put, :copy => :put }を定義私のルートで

私は含む この?

おかげStijn

答えて

2

move_user_pathは "部材" 経路です。したがって、参照しているユーザーメンバーの:idも指定する必要があります。

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

そして、あなたのパスは次のようになります:

move_users_path(:target_node_id => node.id) 

ホープこのことができますあなたがあなたのルートを変更する必要があります、

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

をまたは:

だからあなたが持っているかもしれません。

ジョエル

+0

おかげです。まだいくつかの問題があります... <%= link_to "move user"、move_users_path(:target_node_id => 1)、:メソッド=>:put%> ユーザーコントローラの更新メソッドが呼び出され、動く <%= link_to "ユーザーを移動"、move_users_path(:target_node_id => 1)%> ユーザーコントローラーのshowメソッドが呼び出され、移動は呼び出されません。 map.resources:users、:collection => {:move =>:put、:copy =>:put}をルートに定義しました – Tarscher

1

ジョーグルが正しい。

また、ルーティングについての詳細を学ぶために非常に優れたリソースは、返信用Ruby On Rails guides