簡體   English   中英

使用nil值查找屬性的Rake任務

[英]Rake task to find attributes with nil values

我正在構建一個Rake任務來收集具有零值的記錄

namespace :updates do
  desc "Update from nil values"
  task :companies => :environment do
    nil_featured_companies = Company.where("featured = ?", nil)
    nil_featured_companies.each do |co|
      co.update_featured_to_false
    end
...

當我在rails控制台中檢查它時,我什么都沒收到。 如果我修改查詢以搜索錯誤值,我會收回一個集合

Company.where("featured = ?", false)

我想只獲取特征值為nil的記錄並將其更新為false。 使用nil查找所有特征值的正確語法是什么?

采用

Company.where(featured: nil)

要么

Company.where("featured is null")

試試這樣:

Company.where(featured: nil).each do |co|
   co.update_attribute(:featured, false)
end

ActiveRecord :: StatementInvalid:PG :: InFailedSqlTransaction:ERROR:當前事務被中止

意味着PG引發了異常,並且在此連接中不允許進行未來的交易

試試這個(你確定數據類型是一個布爾值,對吧?)

  Company.where(featured: nil).each do |each|
    each.update_attribute("featured", false)
  end

采用 :

Company.where("featured is ?", nil)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM