Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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,如果我像这样取一个数字对象: @objects = Object.all[1..5] 我不能再对@object执行where方法 不管怎样,我仍然可以表演 @objects.where(:attribute => identity) 只要我知道所有对象都属于同一类?一旦触发了all就会返回一个数组实例,因此您的问题的答案是否。但也有一些问题: 保留一个范围变量。也就是说,如果需要在多个位置使用作用域对象,请执行以下操作: objects = Object.scoped all_obj

如果我像这样取一个数字
对象

@objects = Object.all[1..5]
我不能再对
@object
执行
where
方法

不管怎样,我仍然可以表演

@objects.where(:attribute => identity)

只要我知道所有对象都属于同一类?

一旦触发了
all
就会返回一个数组实例,因此您的问题的答案是。但也有一些问题:

  • 保留一个范围变量。也就是说,如果需要在多个位置使用作用域对象,请执行以下操作:

    objects = Object.scoped
    
    all_objects     = objects.all
    special_objects = objects.where(attribute: something_special).all
    
  • 继续使用范围界定:

    objects = Object.skip(1).take(5)
    
    all_objects     = objects.all
    special_objects = objects.where(attribute: something_special).all
    
  • 简陋低效的方式:

    all_objects     = Object.all[1..5]
    special_objects = object.select { |object| object.attribute == something_special }
    

  • 一旦您触发了
    all
    ,就会返回一个数组实例,所以您的问题的答案是。但也有一些问题:

  • 保留一个范围变量。也就是说,如果需要在多个位置使用作用域对象,请执行以下操作:

    objects = Object.scoped
    
    all_objects     = objects.all
    special_objects = objects.where(attribute: something_special).all
    
  • 继续使用范围界定:

    objects = Object.skip(1).take(5)
    
    all_objects     = objects.all
    special_objects = objects.where(attribute: something_special).all
    
  • 简陋低效的方式:

    all_objects     = Object.all[1..5]
    special_objects = object.select { |object| object.attribute == something_special }
    

  • 恐怕您没有,因为您需要的是ActiveRecord集合,而不是数组。尝试使用
    limit(5)
    而不是
    [1..5]
    或类似的东西。这只是为了在同一类中创建一个相互对象数组。恐怕您不是,因为您需要ActiveRecord集合,而不是数组。尝试使用
    limit(5)
    而不是
    [1..5]
    或类似的东西。这只是为了在同一类中创建一个相互对象数组。哇,太棒了!非常感谢你的支持!这正是我要找的。++打电话给
    select
    hackey:太棒了!非常感谢你的支持!这正是我要找的。++打电话给
    select
    hackey:D