NoMethodError:main:Object(耙任务)的未定义方法“ where”-Rails 4

禅本1126

我有一个带有cron作业的Rails 4应用程序,该应用程序每天运行一次以下任务:

task :update_packs => :environment do
    @all_users = User.all

    @all_users.each do |user|
        today = where(:created_at => (Time.now.beginning_of_day..Time.now))
        @packs = user.default_packs
        if user.packs.today.count >= 1
            puts "ERROR: User already has a record today."
        else
            user.packs.create(:amount => @packs)
        end
    end
end

但是,当我运行任务时,出现以下错误:

NoMethodError: undefined method `where' for main:Object
/home/ben/rails_projects/hartwig/lib/tasks/packs.rake:7:in `block (2 levels) in <top (required)>'
/home/ben/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/relation/delegation.rb:46:in `each'
/home/ben/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/relation/delegation.rb:46:in `each'
/home/ben/rails_projects/hartwig/lib/tasks/packs.rake:6:in `block in <top (required)>'
/home/ben/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
/home/ben/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => update_packs

我试图条件替换where,但是遇到了同样的错误。有任何想法吗?

BroiSatse

这样编写循环:

@all_users.each do |user|
  @packs = user.default_packs
  if user.packs.where(:created_at => (Time.now.beginning_of_day..Time.now).exists?
    puts "ERROR: User already has a record today."
  else
    user.packs.create(:amount => @packs)
  end
end

但是,我强烈建议您为Pack模型添加范围

class Pack < ActiveRecord::Base
  scope :today, -> { where(:created_at => (Time.now.beginning_of_day..Time.now)) }
end

然后您的任务将如下所示:

  @all_users.each do |user|
  @packs = user.default_packs
  if user.packs.today.exists?
    puts "ERROR: User already has a record today."
  else
    user.packs.create(:amount => @packs)
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4:数组的未定义方法“ where”:

来自分类Dev

Rails 4:NoMethodError:nil:NilClass的未定义方法“ each”

来自分类Dev

NoMethodError未定义方法FixNum-Rails 4

来自分类Dev

Rails 4错误:NoMethodError-未定义的方法“ itemfavorites”

来自分类Dev

Rails 4的application.rb中main:Object的变量或方法'config'的未定义名称?

来自分类Dev

TasksController#new未定义方法`tasks'中的NoMethodError,Rails 4

来自分类Dev

EventsController#index中的NoMethodError | [rails4]的未定义方法“ has_reputation”

来自分类Dev

NoMethodError-未定义的方法-在Rails 4中从ID中提取名称

来自分类Dev

NoMethodError未定义的方法“ where”

来自分类Dev

NoMethodError:未定义的方法“ where”

来自分类Dev

Rails 4 Ajax NoMethodError-我的create.js.erb文件中nil:NilClass:的未定义方法'id'

来自分类Dev

Rails 4和Mail-2.5.4-NoMethodError:未定义的方法“ ascii_only?” 对于nil:NilClass

来自分类Dev

Rails 4 Ajax NoMethodError-我的create.js.erb文件中nil:NilClass:的未定义方法'id'

来自分类Dev

rails NoMethodError:未定义的方法“酒店”

来自分类Dev

Rails 4:未定义的方法“ asset_path”

来自分类Dev

Rails 4身份验证方法未定义

来自分类Dev

在Rails 4中集合选择未定义的方法

来自分类Dev

Rails 4中未定义的方法update_attributes

来自分类Dev

未定义的方法“用户?” 在rails4

来自分类Dev

nil:NilClass Rails 4的未定义方法“ []”

来自分类Dev

#.. Rails 4的未定义方法“ model_name_question”

来自分类Dev

Rails 4未定义方法“ to_key”

来自分类Dev

gmaps4rails gem:to_gmaps4rails方法未定义

来自分类Dev

Rails 4:schema.db显示“由于nil:NilClass遵循以下NoMethodError#未定义方法“ []”,因此无法转储表“事件””

来自分类Dev

Rails 4 response_with包括与WHERE的关联

来自分类Dev

活动管理员:Rails_to在Rails 4中给出“未定义的方法”错误

来自分类Dev

会话cookie问题:未定义的方法“ each_with_object”升级到Rails 4和Ruby 2

来自分类Dev

Rails NoMethodError:未定义的方法“紧凑”错误

来自分类Dev

Rails-NoMethodError:#<FirstApp的未定义方法“ configure”

Related 相关文章

  1. 1

    Rails 4:数组的未定义方法“ where”:

  2. 2

    Rails 4:NoMethodError:nil:NilClass的未定义方法“ each”

  3. 3

    NoMethodError未定义方法FixNum-Rails 4

  4. 4

    Rails 4错误:NoMethodError-未定义的方法“ itemfavorites”

  5. 5

    Rails 4的application.rb中main:Object的变量或方法'config'的未定义名称?

  6. 6

    TasksController#new未定义方法`tasks'中的NoMethodError,Rails 4

  7. 7

    EventsController#index中的NoMethodError | [rails4]的未定义方法“ has_reputation”

  8. 8

    NoMethodError-未定义的方法-在Rails 4中从ID中提取名称

  9. 9

    NoMethodError未定义的方法“ where”

  10. 10

    NoMethodError:未定义的方法“ where”

  11. 11

    Rails 4 Ajax NoMethodError-我的create.js.erb文件中nil:NilClass:的未定义方法'id'

  12. 12

    Rails 4和Mail-2.5.4-NoMethodError:未定义的方法“ ascii_only?” 对于nil:NilClass

  13. 13

    Rails 4 Ajax NoMethodError-我的create.js.erb文件中nil:NilClass:的未定义方法'id'

  14. 14

    rails NoMethodError:未定义的方法“酒店”

  15. 15

    Rails 4:未定义的方法“ asset_path”

  16. 16

    Rails 4身份验证方法未定义

  17. 17

    在Rails 4中集合选择未定义的方法

  18. 18

    Rails 4中未定义的方法update_attributes

  19. 19

    未定义的方法“用户?” 在rails4

  20. 20

    nil:NilClass Rails 4的未定义方法“ []”

  21. 21

    #.. Rails 4的未定义方法“ model_name_question”

  22. 22

    Rails 4未定义方法“ to_key”

  23. 23

    gmaps4rails gem:to_gmaps4rails方法未定义

  24. 24

    Rails 4:schema.db显示“由于nil:NilClass遵循以下NoMethodError#未定义方法“ []”,因此无法转储表“事件””

  25. 25

    Rails 4 response_with包括与WHERE的关联

  26. 26

    活动管理员:Rails_to在Rails 4中给出“未定义的方法”错误

  27. 27

    会话cookie问题:未定义的方法“ each_with_object”升级到Rails 4和Ruby 2

  28. 28

    Rails NoMethodError:未定义的方法“紧凑”错误

  29. 29

    Rails-NoMethodError:#<FirstApp的未定义方法“ configure”

热门标签

归档