5

拒否&承認アクションのリンクを2つ書こうとしているのですが、正しいルートの書き方がわからず、

私のルート.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

PUT 要求ではなく GET 要求になる 404 を取得している場合は、:method => :putオプションが JavaScript に依存していたことが原因です。jquery-railsがアプリに適切に統合されていることを確認する必要があります。

于 2012-05-31T20:09:21.863 に答える
1

これでエラーが解消されない場合がありますが、リクエストはプットであるため、次のように指定する必要があります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 に答える