【问题标题】:rails find - condition on array of db-fieldsrails find - 数据库字段数组的条件
【发布时间】:2010-12-19 22:33:43
【问题描述】:

我被卡住了,我想这是我不明白的语法问题:

这是一个(类别)_to_many(产品)关系。

在我的类别模型中,我有 pick1、pick2、pick3、pick4、pick5 列。 其中每一个都包含一个产品的 id。

在我的 category_controller 中,我想在 find 中检索那些:

@productpicks = Product.find(:all, :conditions => 
  ['online = ? and category_id IN (?)', true,
  [@category.pick1, @category.pick2, @category.pick3, @category.pick4, @category.pick5]])

...并像这样在视图中迭代它们:

做一点事

但是在那个数组中什么都找不到...

有人知道我做错了什么吗?

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails arrays find conditional


    【解决方案1】:

    不应该是:

    @productpicks = Product.find(
      :all,
      :conditions => [
        'online = ? and id IN (?)',
        true, [
          @category.pick1,
          @category.pick2,
          @category.pick3,
          @category.pick4,
          @category.pick5
        ]
      ]
    )
    

    将 where 子句中的 category_id 替换为 id?

    由于 pick1-5 持有产品 ID,您正在尝试查找这些特定产品。

    【讨论】:

    • 嘿托尼!太感谢了!你无法想象我思考这个问题有多久了。愚蠢的我;-)
    猜你喜欢
    • 2015-02-26
    • 1970-01-01
    • 2013-05-04
    • 2011-03-15
    • 1970-01-01
    • 2016-05-28
    • 2019-12-30
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多