Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 数组中的“每个”/“映射”偶尔会在“创建\时间\区域\转换\属性”中导致“您拥有一个非预期的零对象”_Ruby On Rails - Fatal编程技术网

Ruby on rails 数组中的“每个”/“映射”偶尔会在“创建\时间\区域\转换\属性”中导致“您拥有一个非预期的零对象”

Ruby on rails 数组中的“每个”/“映射”偶尔会在“创建\时间\区域\转换\属性”中导致“您拥有一个非预期的零对象”,ruby-on-rails,Ruby On Rails,我有一个按钮,它通过XHR向rails服务器中的特定操作发送get请求。 此操作调用我在模型类别中定义的函数。此函数执行类似于x=Category.subcategories的操作,在下一行中执行类似于x.map&:id或x.each{x|y的操作,最终解决! 发布后,在的帮助下,我可以确认一个有效的解决方案 问题:我使用require包含来自无表模型类的模型,这些类位于app/models中,但不扩展ActiveRecord::Base。例如,我有一个执行require“category”的类

我有一个按钮,它通过XHR向rails服务器中的特定操作发送get请求。 此操作调用我在模型类别中定义的函数。此函数执行类似于x=Category.subcategories的操作,在下一行中执行类似于x.map&:id或x.each{x|y的操作,最终解决! 发布后,在的帮助下,我可以确认一个有效的解决方案

问题:我使用require包含来自无表模型类的模型,这些类位于app/models中,但不扩展ActiveRecord::Base。例如,我有一个执行require“category”的类FilterCategory。这会弄乱Rails的类缓存。 我必须首先使用require,因为Category.find:all等行都失败了

解决方案归功于trptcolin:replace Category.find:all with::Category.find:all。这项工作无需明确要求任何模型,因此不会导致任何类缓存问题


当使用config.active\u record.default\u timezone=:utc时,堆栈太深的问题也会消失。对,我有同样的问题,我的关系也被称为类别。这可能是命名问题吗?过去我的模型有一个名为kind的字段。Macario,我认为这不是命名问题。你有我需要的地方吗在你的应用程序中有一个不是从ActiveRecord::Base派生的模型类?我想这是我的问题。我有一个FilterCategory类,它需要“category”,我想这会弄乱Rails的类缓存。
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.include?
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:142:in `create_time_zone_conversion_attribute?'
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:75:in `define_attribute_methods'
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:71:in `each'
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:71:in `define_attribute_methods'
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:355:in `respond_to?'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `method_missing'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `map'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `send'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `method_missing'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:369:in `method_missing'
C:/MyApp/app/models/category.rb:24:in `fetch_prices_grouped_by_date'
C:/MyApp/app/controllers/categories_controller.rb:103:in `show'
config.cache_classes = true
self.skip_time_zone_conversion_for_attributes = []
config.time_zone = 'UTC'
config.active_record.default_timezone = :utc
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:237:in `method_missing'
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:253:in `method_missing'
C:/MyApp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:211:in `to_proc'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:369:in `method_missing'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `map'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `send'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:215:in `method_missing'
C:/MyApp/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:369:in `method_missing'
C:/MyApp/app/models/category.rb:24:in `fetch_prices_grouped_by_date'
C:/MyApp/app/controllers/categories_controller.rb:103:in `show'
if self.class.primary_key.to_s == method_name
if false and self.class.primary_key.to_s == method_name