Ruby on rails 3 使用Rails 3 where和'查找记录;不等于';

Ruby on rails 3 使用Rails 3 where和'查找记录;不等于';,ruby-on-rails-3,find,Ruby On Rails 3,Find,我有以下发现,这不起作用 self.participants.where(:role => "Celebrant", :created_at => year..Time.now, :board_id => !current_board.id) 我想找到满足上述要求的参与者,以及 :board_id not equal to current_board.id 我如何使用rails 3做到这一点?where?您可能需要这样的东西: self.participants.

我有以下发现,这不起作用

self.participants.where(:role => "Celebrant", :created_at => year..Time.now, :board_id => !current_board.id)  
我想找到满足上述要求的参与者,以及

:board_id not equal to current_board.id

我如何使用rails 3做到这一点?where?

您可能需要这样的东西:

self.participants.
     where(:role => "Celebrant", :created_at => year..Time.now).
     where('board_id <> ?', current_board.id)  
self.participants。
其中(:role=>“Celebrant”,:created_at=>year..Time.now)。
其中('board_id?',当前_board.id)
您必须下拉到字符串条件和“不等于”的SQL代码段,如下所示:

使用散列条件只能进行相等、范围和子集检查


您还可以使用Metawhere gem,在我通常使用类似于“AND id NOT IN(?)”的sql,为“”传递id集合。哇,我不知道您可以链接where语句。这非常有效。@chell:查询方法可以根据需要链接、混合、匹配和链接;他们很懒,在你要求他们提供一些数据之前,他们不会做与数据库对话的真正工作。