2009-06-04 209 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" 

定义一个dropzone。

我有一个路径问题。上面

move_user_url码结果未能从 生成{:行动=> “移动”, :控制器=> “用户”, :target_node_id => 2},预期: {:行动=> “移动”, :控制器=> “用户”},DIFF: {:target_node_id => 2}

以我的路由我定义map.resources :users, :member => { :move => :put, :copy => :put }

显然Rails是不期望的target_node_id但如何能我包括 这个?

感谢 斯泰恩

回答

2

的move_user_path是 “部件” 路径。因此,您还需要为您所指的用户成员提供:id。

所以,你可能有:

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

或者,你需要将你的路线更改为:

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

然后你的路径变为:

move_users_path(:target_node_id => node.id) 

希望这有助于。

Joerg

+0

感谢您的答复。仍然存在一些问题...... 当我做 <%=的link_to“移动用户”,move_users_path(:target_node_id => 1),:方法=>:把%> 用户控制器的更新方法被调用,而不是移动。 <%=的link_to “移动用户”,move_users_path(:target_node_id => 1)%> 用户控制器的显示方法被调用,而不是在移动。 我在路由中定义了map.resources:users,:collection => {:move =>:put,:copy =>:put} – Tarscher 2009-06-04 13:03:34