首页 > 解决方案 > Thor::Group:Class 的未定义方法“find_each”

问题描述

我编写了一个 Thor 任务,该任务应该遍历所有利用find_each. 但我收到此错误消息: Thor::Group:Class 的未定义方法find_each

为什么 find_each 在这里不可用?在 Rails 控制台中运行User.find_each { |u| puts u.name }

class CloudImages < Thor
  require "./config/environment.rb"

  desc "save_user_avatar_urls", "Save existing AWS user avatars"
  def save_user_avatar_urls
    User.find_each do |user|
      next if user.avatar_url.blank?

      path      = URI(user.avatar_url).path
      image_url = $DOMAIN + path

      user.update_attribute(:aws_avatar_url, image_url)
    end
  end

end

标签: ruby-on-railsthor

解决方案


更改User::User

class CloudImages < Thor
  require "./config/environment.rb"

  desc "save_user_avatar_urls", "Save existing AWS user avatars"
  def save_user_avatar_urls
    ::User.find_each do |user|
      next if user.avatar_url.blank?

      # ...
    end
  end
end

推荐阅读