rails find - db-fields数组的条件

时间:2009-11-24 15:44:47

标签: ruby-on-rails arrays find conditional

我被卡住了,我猜这是一个我不理解的语法:

这是一个(类别)_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]])

...并在视图中迭代它们:

做一点事

但是在那个阵列中找不到任何东西......

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

感谢您的帮助!

缬氨酸

1 个答案:

答案 0 :(得分:1)

不应该是:

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

在where子句中用id替换category_id?

由于pick1-5持有产品ID,并且您正试图找到这些特定产品。