Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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/6/haskell/8.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 如何在Rails 3中搜索没有';你没有模特吗?_Ruby On Rails_Ruby On Rails 3_Activerecord_Ruby On Rails 3.1 - Fatal编程技术网

Ruby on rails 如何在Rails 3中搜索没有';你没有模特吗?

Ruby on rails 如何在Rails 3中搜索没有';你没有模特吗?,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 3.1,我有两个模型merchant和category具有HABM关系,因此有一个名为categories\u merchants 如何在ActiveRecords中编写以下查询? SELECT categories_merchants.merchant_id WHERE categories_merchants.category_id IN (1,2,3,4) 注意:连接表没有模型,它在Rails 3中自动工作,无需模型。如果您想进行这样的查询,您应该在has\u many:tour

我有两个模型
merchant
category
具有HABM关系,因此有一个名为
categories\u merchants

如何在ActiveRecords中编写以下查询?

SELECT
    categories_merchants.merchant_id
WHERE
    categories_merchants.category_id IN (1,2,3,4)

注意:连接表没有模型,它在Rails 3中自动工作,无需模型。

如果您想进行这样的查询,您应该在
has\u many:tour
中转换您的HABTM,并为连接表创建一个模型并基于该模型进行查询

或者,但性能可能较差,您可以:

Merchant
  .select(:id)
  .joins("categories_merchants ON categories_merchants.merchant_id = merchant.id")
  .where("categories_merchants.category_id IN (?)", [1,2,3,4])

由于性能不是一个问题,我尝试使用这种类型的查询——但不断得到一个
未定义的方法'where'for#
错误