5

我正在尝试为拒绝和批准操作编写两个链接,但是,我不知道如何编写正确的路线,

我的路线.rb

put 'approve_class_room/:id(.:format)', :to => 'class_room_member_ships#approve'
put 'reject_class_room/:id(.:format)', :to => 'class_room_member_ships#reject'

但是,在 rake 路线中,我得到:

PUT    /approve_class_room/:id(.:format) class_room_member_ships#approve
PUT    /reject_class_room/:id(.:format)  class_room_member_ships#reject

那么,正确的 link_to 路径是什么?

我的链接是

= link_to 'approve', approve_class_room_path

它不会工作,我得到:

undefined local variable or method `approve_class_room_path'

ps:我正在尝试使用 AJAX 让 link_to 工作,在同一页面上进行批准,我的方式是否正确?link_to 路径是什么?

请问有什么想法吗?

4

2 回答 2

8

首先,要清除错误,您需要使用命名路由

put 'approve_class_room/:id(.:format)', :to => 'class_room_member_ships#approve',
                                        :as => :approve_class_room
put 'reject_class_room/:id(.:format)', :to => 'class_room_member_ships#reject',
                                       :as => :reject_class_room

然后,要执行 PUT 请求,您需要在调用中包含该:method选项:link_to

link_to 'approve', approve_class_room_path, :method => :put
link_to 'reject', reject_class_room_path, :method => :put

如果您收到 404 导致 GET 请求而不是 PUT 请求,那是因为该:method => :put选项依赖于 JavaScript。您需要确保jquery-rails正确集成到您的应用程序中。

于 2012-05-31T20:09:21.863 回答
1

这可能无法清除该错误,但由于请求是 put,因此您需要在以下内容中指定link_to

= link_to 'approve', approve_class_room_path, :method => :put

对于路线,我认为添加它会使错误消失:

put 'approve_class_room/:id(.:format)', :to => 'class_room_member_ships#approve', :as => :approve_class_room
于 2012-05-31T20:03:38.893 回答