【问题标题】:Rails error "wrong number of arguments (1 for 0)"Rails 错误“参数数量错误(1 代表 0)”
【发布时间】:2011-09-30 23:14:12
【问题描述】:

我正在使用范围来过滤我的结果:

@hotels = @hotels.type(params[:hotel_type]) unless params[:hotel_type].blank?

scope :type, lambda { |type|
  self.scoped.where('hotel_type_id IN ( ? )', type.join(', ')) unless type.blank?
}

还有参数[:hotel_type] = ["2","3"]

有人可以帮助我吗?我认为这是因为它是一个数组,但我不知道如何解决这个问题。

谢谢

【问题讨论】:

  • 您应该能够在没有join 的情况下传入type,因为SQL 转义应该为您处理它。

标签: ruby-on-rails ruby


【解决方案1】:

我认为你不能将你的作用域命名为 type,我将其命名为 by_type

【讨论】:

  • 有时保留字会这样偷偷摸摸咬你。
  • 是的,我不这么认为,但似乎合乎逻辑!
  • 昨天我尝试将列命名为“类型”,但也没有成功。
  • 单表继承中使用类型来命名一个属性,以便为不同的类使用同一个表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 2011-11-08
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多