当前位置: 首页 > 知识库问答 >
问题:

没有将符号隐式转换为整数

尤俊誉
2023-03-14

我正在尝试将文件导入Excel,但是当我尝试使用相关数据创建记录时,它会向我显示以下错误:

no implicit conversion of Symbol into Integer  

在此行中:

 list.detallelp_attributes = {Articulo: row["Articulo"], Minimo: row["Minimo"], Maximo: row["Maximo"], IdEmpresa: empresa}

这是我用来导入的列表控制器和方法:

 has_many :detallelp, class_name: "Deta", foreign_key: "ListaId"
  accepts_nested_attributes_for :detallelp


  def self.import(file,empresa)#importar
    @errors = []
    spreadsheet = open_spreadsheet(file)
    header = spreadsheet.row(1)
    (2..spreadsheet.last_row).each do |i|

      row = Hash[[header, spreadsheet.row(i)].transpose]
      list = find_by_id(row["id"]) || new
      list.attributes = {id: row["id"], Lista: row["Nombre"], Tipo: row["Tipo"], FechaIni: row["Fecha inicial"], FechaFin: row["Fecha final"], IdEmpresa: empresa}

      list.detallelp_attributes = {Articulo: row["Articulo"], Minimo: row["Minimo"], Maximo: row["Maximo"], IdEmpresa: empresa}

      if list.save
        # stuff to do on successful save
       else
         list.errors.full_messages.each do |message|
           @errors << "Error fila #{i}, columna #{message}"
         end
       end


    end
    @errors #  <- need to return the @errors array
  end

我的方法导入到列表控制器中:

  def import
    empresa = current_usuario.empresa_id
    @errors = List.import(params[:file], empresa)
    if @errors.present?
      render :errorimportation; #Redirije a dicha vista para mostrar los errores
      return;
    else
      redirect_to listap_path, notice: "listas importadas."
    end
  end

这是我的“deta”控制器:

  belongs_to :list, class_name:"List", foreign_key: "ListaId"

共有1个答案

鲜于璞瑜
2023-03-14

你的关系是has_many。因此,accepts_nested_attributes_for需要一个数组。你给它一个哈希值。这就是错误的根源。给它一个数组。

 类似资料:
  • 我在尝试更改哈希值时遇到了一个奇怪的问题。我有以下设置: 当我执行此代码时,我得到:“TypeError:没有将符号隐式转换为整数”,尽管 item[:company_name] 的输出是预期的字符串。我做错了什么?

  • 搞砸 使用的代码 我无法获得以下输出: 错误信息: 类型错误没有将符号隐式转换为整数 在多条记录的情况下,它可以正常工作 使用的代码

  • 我试图创建AWS安全组,但我得到的错误在 我在遵循这个文档。知道如何解决这个错误吗? 错误:

  • 尝试将 URL 中包含的参数转换为整数,以便在控制器中对其进行操作 - URL 的格式类似于 http://localhost:3000/charges?data=149 charges_controller.rb 如下所示: 我在better_errors屏幕中看到的参数已经检测到“数据”量: 在live shell中,如果我执行params[: data],则会出现更好的错误。to_i它返回1

  • 我尝试使用改造2发布到rails来过滤来自params[: filter]的一些数据是: 所以我想用一个简单的参数[:filter][:id]获取id,但它,感谢您的帮助,如果它看起来是一个简单的问题,很抱歉

  • 当创建新的学生时,Im得到错误“没有符号到整数的隐式转换” 在控制器中, 是什么导致了这个问题?