Rails ActiveRecord ::关系错误

时间:2014-05-30 09:42:25

标签: ruby-on-rails ruby activerecord

在ActiveRecord查询键/列中查看将变量作为值传递?

login = Login.where("email_address" => "geo@bostj.com","active" => 1).select("id")
=> [#<Login id: 767>]
login = Login.where("email_address" => "geo@bostj.com","active" => 1).select("id").class
=> ActiveRecord::Relation

admin = Admin.where("login_id"=>login).exists?

Heeeelp

3 个答案:

答案 0 :(得分:2)

您可以写为

login_ids = Login.where("email_address" => "geo@bostj.com","active" => 1).pluck(:id)
Admin.where("login_id in (?)", login_ids).blank?

blank?

  

如果relation为空,则返回true。

Admin.where("login_id in (?)", login_ids)会回复我们ActiveRecord::Relation个对象,因此我认为我们可以使用#blank?方法。

答案 1 :(得分:2)

我愿意:

login = Login.where(email_address: 'geo@bostj.com', active: 1)
Admin.exists?(login_id: login.pluck(:id))

答案 2 :(得分:0)

应该是

admin = Admin.where("login_id" => login.first.id).exists?