Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 不包括属于顶级帖子的评论_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 不包括属于顶级帖子的评论

Ruby on rails 不包括属于顶级帖子的评论,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有三种模式:帖子、问题和评论,其中帖子有很多问题,问题有很多评论(帖子也有很多通过问题的评论)。我有一个方法如下所示: def home @post = Post.where(:top => true).limit(1) @comments = Comment.order("created_at desc") end 问题是,我不希望@comments的任何评论属于@post的帖子。如何排除(通过问题)属于第一篇文章的评论?仅使用where排除属于@post的评论。而不是: @

我有三种模式:帖子、问题和评论,其中帖子有很多问题,问题有很多评论(帖子也有很多通过问题的评论)。我有一个方法如下所示:

def home
  @post = Post.where(:top => true).limit(1)
  @comments = Comment.order("created_at desc")
end

问题是,我不希望@comments的任何评论属于@post的帖子。如何排除(通过问题)属于第一篇文章的评论?

仅使用
where排除属于
@post
的评论。而不是

@comments = Comment.order("created_at desc").where.not(post_id: @post.id)
有关
where.not
in的更多信息

正如在下面的注释中添加的OP一样,如果在
Post
Comment
之间存在另一个模型(在本例中为:
Question
),则可以执行以下操作:

@comments = Comment.order("created_at desc").where.not(question_id: @post.question_ids)

啊,太好了,我不知道在哪里。但有一件事我应该包括在问题中——我在帖子和评论之间有一个称为问题的模型,因此评论只有一个问题id。我不确定说问题id的语法是否正确。post:@post。id@user2759575好的,看看我编辑的答案,它(希望)反映了添加的问题。然而,我无法知道问题和帖子(多对多、一对多等)之间的关系是基于您给我的上下文。问题和评论也是如此。你能把所有这些信息(包括你上面的评论)添加到问题中吗?如果能从一开始就把所有的信息都放在问题中,那就太好了。是的,很抱歉,我用更多的细节编辑了这个问题。这越来越近了,但是因为一篇帖子有很多问题@post.question不起作用。嗯,这给了我一个针对nil:NilClass错误的“未定义方法`question\u id”。你是否仍然有
@post=post.where(:top=>true)。限制(1)
未定义的方法。。。对于nil:NilClass
错误是说
@post
为空,这意味着它没有被设置,或者在
top
为真的地方没有post。