Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 从我的.each循环中获得恶意迭代_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 从我的.each循环中获得恶意迭代

Ruby on rails 从我的.each循环中获得恶意迭代,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习ruby on rails并大致遵循以下指南: 我有一个关于成就结果的循环(指南示例中的注释): 已完成的结果() 身份证件: 成功: 用户: 这是一个成就的show视图,当我加载该视图时,我看到循环的额外迭代,结果字段为空值。即使阵列为[](使用rails控制台检查以确保阵列为空),也会发生这种情况 成就模式: class Achievement < ActiveRecord::Base has_many :achievement_results, :de

我正在学习ruby on rails并大致遵循以下指南:

我有一个关于成就结果的循环(指南示例中的注释):

已完成的结果()

身份证件:

成功:

用户:


这是一个成就的show视图,当我加载该视图时,我看到循环的额外迭代,结果字段为空值。即使阵列为[](使用rails控制台检查以确保阵列为空),也会发生这种情况

成就模式:

class Achievement < ActiveRecord::Base
  has_many :achievement_results, :dependent => :destroy
end
班级成绩:破坏
结束

您是否在某个地方(可能是控制器,或某个地方的表单)调用了
@acquisition.acquisition\u results.build
。这将解释为什么
count
返回一个不同的数字(因为
count
不像
size
那样被缓存)以及为什么值为空


如果你有那一行,把它改成
AchievementResults.new(:Achievent=>@Achievent)
可能会帮你解决问题;检查数据库。向我们展示@Acquisition的模型。在这个视图中,
@acgression.acgression\u results.count
返回什么,1还是0?@DaveNewton在rails控制台上给了我“←[1m←[35机械结果载荷(1.0ms)←[0m从“成就结果”中选择“成就结果”。*其中“成就结果”。“成就id”=2=>[]”。不知道检查数据库的另一种方法。@MichałKwiatkowski将模型添加到问题中,在视图中计数显示为0。我的意思是直接检查数据库;
每个
都不会迭代不存在的内容,也不会得到空值,你会得到
结果
的NilValue,因此列表中有一些内容。
class Achievement < ActiveRecord::Base
  has_many :achievement_results, :dependent => :destroy
end