【问题标题】:Ruby Array map for integers整数的 Ruby 数组映射
【发布时间】:2012-01-24 07:32:48
【问题描述】:

我有这个 Rails 3.1 ActiveRecord 查询:

Show.where('event_id = ? AND id not in (?)', params[:event_id], @dog.show_entries.map(&:show_id).join(','))

@dog.show_entries.count == 1 时运行良好。当它有更多时,我生成的 SQL 出现问题,即:

SELECT "shows".* FROM "shows" WHERE (event_id = 1 AND id not in ('2,1')) ORDER BY date ASC

如何阻止它将2,1 括在引号中?

【问题讨论】:

    标签: ruby activerecord ruby-on-rails-3.1


    【解决方案1】:

    删除join(',')

    Show.where('event_id = ? AND id not in (?)', params[:event_id], 
      @dog.show_entries.map(&:show_id))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-26
      • 2013-03-21
      • 2011-11-20
      • 1970-01-01
      • 2014-03-11
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多