2

私はNotificationモデルを持っています。全体として、このモデルは重要ではなく、ユーザーに通知するだけです。このデータを保持する理由はありません。

ユーザーは AJAX を介して通知を 1 つずつクリアでき、その部分は正常に機能します。

ユーザーに「すべて削除」オプションを提供したいと思います。Android の通知センターによく似ています。

これを行う最善の方法は、顧客コントローラー アクションですか? または、delete コントローラーを使用して、ユーザー ID と、すべてを削除するための何らかのフラグを渡しますか?

4

3 に答える 3

2

destroy_all_notifications_pathID なしで に投稿し、コントローラーで、ログインしているユーザーのすべての通知を破棄します。

于 2013-04-19T16:48:26.210 に答える
1

Notification controller で新しいアクションを宣言する必要があります。

 def destroy_all
   @user.notifications.each(&:destroy)
 end

次に、それをルートに追加します

 map.resources :users do |user|
   user.resources :notifications, :collection => { :destroy_all => :delete }
 end

@user が current_user かどうかを確認することを忘れないでください!

ビューで、リンクを使用して破棄します。

 <%= link_to_remote :destroy_all_notifications_user_path(current_user) %>
于 2013-04-19T16:49:29.807 に答える