Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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
Sql 如何从rails中的同一类将数据从一个对象行复制到另一个对象行_Sql_Ruby On Rails_Ruby - Fatal编程技术网

Sql 如何从rails中的同一类将数据从一个对象行复制到另一个对象行

Sql 如何从rails中的同一类将数据从一个对象行复制到另一个对象行,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,我一直在网上搜索,但没有找到最好的方法 我有一个控制器,在该控制器中我执行一个sql查询来检索来自用户的所有请求 @solicitudes = Solicitud.where("user_id = ?",@current_user.id) 我想知道如何将主对象上的每个数据行传输到具有相同状态的所有请求的适当对象。我试过: @solicitudes.each do |solicitud| if solicitud.estado == 1

我一直在网上搜索,但没有找到最好的方法

我有一个控制器,在该控制器中我执行一个sql查询来检索来自用户的所有请求

    @solicitudes = Solicitud.where("user_id = ?",@current_user.id)
我想知道如何将主对象上的每个数据行传输到具有相同状态的所有请求的适当对象。我试过:

    @solicitudes.each do |solicitud|
           if solicitud.estado == 1
             @solicitudes_pendientes << solicitud
           else
             if solicitud.estado == 2
               @solicitudes_aprobadas << solicitud
             else
               if solicitud.estado == 3
                 @solicitudes_rechazadas << solicitud
               end
             end
          end
     end
等待任何有用的建议。谢谢。

您可以使用

这会给你一个表单的散列

  {
    1 => [#<Solicitud estado: 1>, #<Solicitud estado: 1>],
    2 => [#<Solicitud estado: 2>, #<Solicitud estado: 2>, ..],
    3 => ..,
    ..
  }

谢谢你的回答,桑托什,目前我正在使用@clustudes|u pendientes.each do|clustud|但是现在它给出了一个零级错误。你能告诉我哪一个是Santosh最好的方法吗
 @solicitudes = Solicitud.where(:user_id => @current_user.id).entries.group_by(&:estado)
  {
    1 => [#<Solicitud estado: 1>, #<Solicitud estado: 1>],
    2 => [#<Solicitud estado: 2>, #<Solicitud estado: 2>, ..],
    3 => ..,
    ..
  }
@solicitudes_pendientes = @solicitudes[1]