dynamicall创建一个表格,其中包含rails中的复选框作为表单

时间:2015-11-19 09:26:40

标签: ruby-on-rails forms checkbox

我需要创建一个表单,用户可以上传多个文件,然后在关闭文件之前检查某些属性。每个文件输入字段应显示在表格中,以及每个文件输入字段的复选框。

但是,我不知道表中有多少条目。它取决于某个文件夹中的文件数量,并且会发生变化。

所以我必须创建表和表单的代码是:

<% counter = 0 %>
<%= simple_form_for(@myResource, :as => :myResource, :html => {:multipart => true}) do |f| %>
    <table>
        <% @filesInFolder.each do |file| %>
        <tr>
            <td>
                <%= // Need checkboxes here %>
            </td>
        </tr>
        <% counter = counter+1 %>
        <% end %>
    </table>
<% end %>

现在,我可以使用'check_box_tag'和'file_field_tag'轻松放置复选框和输入字段。但是,我不知道如何在另一边访问它们,因为我习惯于做'f.check_box'和'f.file_field'。我不知道在这种情况下如何使用'f.check_box',因为我必须提前给他们名字

f.check_box :input_checkbox1 ...

我需要根据我创建的动态名称给它们动态名称,所以使用'check_box_tag'我可以去

check_box_tag "checkBox#{counter}"

那么如何创建一个我可以使用控制器轻松访问表单的复选框,但是创建尽可能多的复选框并动态命名它们?

编辑:为了澄清,@ fileInFolder是文件名的集合,但不是我想要上传的文件。假设我在该文件夹中有5个文件,然后我想要该界面5次,以便用户可以检查某些选项并将SUPPLEMENTARY文件上传到文件夹中已有的文件。 此外,上传文件会创建多个记录,但每个文件上传一个记录,而不是文件夹中的每个文件。因此,如果我在文件夹中有5个文件,并且用户只检查其中3个文件的框,我将创建3个新记录

1 个答案:

答案 0 :(得分:-1)

像你想要的那样计算:

<%= simple_form_for(@myResource, :as => :myResource, :html => {:multipart => true}) do |f| %>
    <table>
        <% @filesInFolder.each_with_index do |file, index| %>
        <tr>
            <td>
                <%= f.check_box "check-box-#{index}", file.whatever %>
            </td>
        </tr>
        <% end %>
    </table>
<% end %>

当然,你的变量@filesInFolder必须是来自DB的选择