【问题标题】:wrong number of arguments (0 for 1) MongoDB search in rails错误数量的参数(0 代表 1) MongoDB 在 rails 中搜索
【发布时间】:2016-12-16 09:32:12
【问题描述】:

我的 Ruby on Rails 项目的 mongoDB 中有两个集合, 一个有动作,另一个有演员。 动作有一个属性 actor,其中包含演员的姓名,您可以通过它找到他。我知道想要找到属于特定性别演员的所有动作。我使用的代码如下。

found = Motion.all
found.each do |x|
    n = x.actor
    a = actors.where(:name => n).first
    if a.gender != search_gender
      found = found.where.not(:name => n)
    end
  end

但我总是得到错误

wrong number of arguments (0 for 1)

它应该在这一行:

found = found.where.not(:name => n)

但我真的不知道我在这里做错了什么。谁能告诉我或者有没有人知道我可以做到这一点的不同方式?我对rails不太熟悉,所以这可能是一个非常愚蠢的错误。任何帮助表示赞赏。

【问题讨论】:

  • 可以分享一下相关的模特联想吗?并告诉我们你在哪里写了这段代码?

标签: ruby-on-rails ruby mongodb


【解决方案1】:

这是因为where 方法至少需要一个参数,但你没有传递任何东西。

这里可以使用not_in查询:

found = found.not_in(:name => n)

这个stack overflow question 可能会对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多