ruby-on-rails - 迭代named_scope内的has_many集合

标签 ruby-on-rails ruby activerecord named-scope

这是我的模型:

class Message < ActiveRecord::Base
  has_many :comments

  attr_accessible :read #bool

  def unread_comments?
    comments.each { |comment| return true unless comment.read?}

    false
  end
end

class Comment < ActiveRecord::Base
  belongs_to :message

  attr_accessible :read #bool
end

这是我想要做的:我想在消息中创建一个名为unread的named_scope,如果消息的任何评论未读或消息本身未读,它基本上返回true 。有什么办法可以做到这一点吗?

最佳答案

class Message < AR::Base
  ...
  def unread?
    !self.read && !self.comments.all?(&:read)
  end
end

关于ruby-on-rails - 迭代named_scope内的has_many集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5330607/

相关文章:

ruby-on-rails - 使用@import 或 require 将 css 和 js 导入 Rails 4.2.4 应用程序

ruby-on-rails - 子类和 Rabl

mysql - 具有命名范围的脏对象?

activerecord - yii2 中区分大小写的查询

ruby-on-rails-3 - ActiveRecord验证: association saved even if validation failed

ruby-on-rails - Rails 4 嵌套形式 - 没有将符号隐式转换为整数

ruby-on-rails - Rails 应用程序 SSL 并未应用于整个平台。

ruby-on-rails - 如何将特定请求详细信息记录到 Rails 服务器日志

ruby - Rally Ruby API - 向 'description' 字段添加换行符

ruby-on-rails - 使用命名范围 "<field> is ambiguous' 在 ActiveRecord 中通过电子邮件进行搜索