0

私はNotificationモデルを持っていて、その多くの列の1つが「未読」です。

簡単な方法を使用して、@notificationコレクションで「未読」の値がfalseであるレコードを見つける必要があります。そのような:

@notifications= Notification.all
@notifications.unread --> returns a subset of @notifications which are unread
@notifications.unread.count --> returns number of unread notifications

この「未読」メソッドを作成するにはどうすればよいですか?

4

2 に答える 2

3

1 つの方法は、クラスscopeに以下を追加してを作成することです。Notification

scope :unread, where(unread: true)

スコープについては、こちらをご覧ください。

于 2012-11-11T13:27:24.180 に答える
2

このために、クラス メソッドまたはスコープのいずれかを記述できます。

class Notification
  def self.unread
    where(:unread => true) # depends on your data type
  end
end

また

class Notification
 scope :unread, where(:unread => true) # depends on your data type
end

Notificationクラスのメソッドを呼び出すだけです

Notification.unread # => returns unread notifications
Notification.unread.count # => returns number of unread notifications
于 2012-11-11T13:53:28.937 に答える