代码之家  ›  专栏  ›  技术社区  ›  Brent

如何在ROR中使用ActiveScaffold一次创建多个记录

  •  4
  • Brent  · 技术社区  · 16 年前

    我想用ActiveScaffold来创建 分配 学生 一步到位。这些记录将包含相同的数据,但学生证除外。

    我可以覆盖默认表单,用多选框替换选择学生名字的下拉框——这正是我想要的。但是,这种更改只是表面上的,因为底层代码只从该框中获取第一个选定的名称,并创建一个记录。

    有人能提出一个好的方法来实现这一点,而不需要我对底层的ActiveScaffold代码进行过多的解密和重写?


    更新:我仍然没有找到一个好的答案来解决这个问题。

    3 回复  |  直到 16 年前
        1
  •  1
  •   ARemesal    16 年前

    我想您已经定义了您的multi-select-box-adding:multiple=>true to-html parameters of select\u-tag。然后,在控制器中,您需要访问所选名称的列表,您可以这样做:

    params[:students].collect{|student| insert_student(student, params[:assignment_id]) }
    

    将collect应用于数组或枚举,可以循环遍历该数组的每个项,然后对每个学生执行所需的操作(在示例中,调用一个函数来插入学生)。Collect返回一个数组,其中包含执行代码的结果。

        2
  •  0
  •   Can Berk Güder Pugalmuni    16 年前

    has_many :students has_and_belongs_to_many :students ,然后您可以将多选框的id更改为assignment_student_ids[],这样就可以了。

        3
  •  0
  •   Brent    16 年前

    BatchCreate ,一个ActiveScaffold扩展,它看起来可能会起作用。

    推荐文章