ruby-on-rails - 检查关系是否存在 has_one mongoid

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 mongoid

class Question
  include Mongoid::Document
  include Mongoid::Timestamps

  field :title, :type => String

  has_one :response
end

class Response
  include Mongoid::Document
  include Mongoid::Timestamps

  field :content, :type => String

  belongs_to :question

end

控制台:

1.9.3p448 :014 > Question.where(:response => nil).size
 => 3 
1.9.3p448 :016 > Question.where(:response.ne => nil).size
 => 0 

然而,所有问题都有一个创建并关联的response!

谢谢!

最佳答案

ID 字段仅存储在子对象中,因此 Question 不知道它的 Response(没有 response_id 字段)。

你可以这样实现目标:

Response.ne(question_id: nil).map(&:question)

或者,获取没有回复的问题:

Question.not.in(id: Response.pluck(:question_id))

关于ruby-on-rails - 检查关系是否存在 has_one mongoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20815417/

相关文章:

ruby-on-rails - TDD 和 BDD 在 Rails 3 中如何相互关联?

ruby-on-rails - 如何定义应用程序级全局方法以在 Rails 中的任何地方使用?

Jquery live 成功后不会触发

ruby-on-rails - Rails 条件布局 : Why does ":for" work as an option for the layout method?

ruby-on-rails - 一个 Rails 应用程序,多个域名

ruby-on-rails - 不理解在 Rails 中使用 Grape API gem 的嵌套资源

ruby - 在写入新内容之前清理 ruby​​ 文件

ruby-on-rails - Rails 事件记录导入 : How do I know how many records to insert in one batch?

ruby - 使用 Capistrano 启动 sidekiq

ruby-on-rails - 仅显示前 n 个关联记录 - Rails View