路由问题

时间:2009-06-04 12:01:29

标签: ruby-on-rails

我正在尝试创建一个用户管理系统,用户可以沿着不同的组拖放用户(复制和移动用户)。我用

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},预期:   {:行动=> “中移动”,   :controller =>“users”},diff:   {:target_node_id =→2}

在我的路线中,我定义了map.resources :users, :member => { :move => :put, :copy => :put }

显然Rails不期待target_node_id,但我该如何包含它呢?

感谢 斯泰恩

2 个答案:

答案 0 :(得分: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)

希望这有帮助。

约尔格

答案 1 :(得分:1)

Joerg是对的。

此外,了解有关路由的更多信息的资源非常好Ruby On Rails guides