Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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 调用我创建的用户方法时,Rails服务器挂起。没有错误,我不知道';我不知道如何测试它_Ruby On Rails_Oop_Model View Controller - Fatal编程技术网

Ruby on rails 调用我创建的用户方法时,Rails服务器挂起。没有错误,我不知道';我不知道如何测试它

Ruby on rails 调用我创建的用户方法时,Rails服务器挂起。没有错误,我不知道';我不知道如何测试它,ruby-on-rails,oop,model-view-controller,Ruby On Rails,Oop,Model View Controller,我调用User.rb模型中定义的这个方法(以及下面详述的helper方法) def get_random_items return nil unless groups_as_member if groups_as_member == 1 assignments = groups_as_member.assignments.limit(5) random_items = Post.rand_by_post(assignments) end random_groups = groups_as

我调用User.rb模型中定义的这个方法(以及下面详述的helper方法)

def get_random_items
return nil unless groups_as_member
if groups_as_member == 1
  assignments = groups_as_member.assignments.limit(5)
  random_items = Post.rand_by_post(assignments)
end
random_groups = groups_as_member.sort_by{rand}.slice(0,5)
random_items = Array.new
i=0
return unless random_groups
until i == 10 do
  random_groups.each do |group|
    assignments = group.assignments.limit(5)
    if y = Post.rand_by_post(assignments)
      random_items << y
      i+=1
      if random_items == 5
        return random_items
      end
    else
      return random_items
    end
  end
end

return random_items
end
在用户控制器
中显示
操作:

def show
@public_groups = Group.public
@groups_member = @user.groups_as_member
@groups_as_owner = @user.groups_as_owner

@random_items = @user.get_random_items
end
当我在user show操作中注释掉调用时,user show在我的开发和生产服务器上运行良好。但是,当我尝试使用该方法时,服务器只会挂在那里,什么也不做。我在服务器日志或heroku日志中找不到任何错误。我的测试写作技能非常有限,而且我很难用整个方法来写。
有人能发现问题吗?

如果您的
随机\u组
为空,您的助手方法
获取随机\u项
将进入一个无休止的循环
,直到i==10 do。。。结束
。这可能就是原因


您可能希望将
除非随机分组否则返回
更改为
如果随机分组则返回。空?

您的意思是
除非随机分组否则返回。空?==false
.empty?
方法是关键。整个方法开头的除非语句没有返回nil如果数组为空,我必须使用
.empty?
方法。
def show
@public_groups = Group.public
@groups_member = @user.groups_as_member
@groups_as_owner = @user.groups_as_owner

@random_items = @user.get_random_items
end