fields_ for带有轨道上的无线电按钮3.2



i当前确实有一个用于事件签名的表格,无限额的注册形式参与者,因此您可以通过JavaScript附加表单,我将其复制为fields_for fieldator forderator fenerator fenerator

的第一个必须参与者。

现在,我有一个性别野外,刚刚称为:性别,就像其他个人数据的其他10个输入一样。

性别菲尔德是唯一不适合每个参与者发送的人。该字段只是缺少。

fields_for助手命名为:

event[participants][][email]
event[participants][][gender]

当我添加3个参与者时,我会得到一个类似的数组:

[{email: email1, gender: male}, {email:email2}, {email:email3}]

设置为导轨。

由于一个无线电按钮是由其名称组成的,我想我可能会将索引添加到空括号中,以使其像

一样
event[participants][1][gender]

对于第二参与者。

这导致

ERROR TypeError: expected Array (got Rack::Utils::KeySpaceConstrainedParams) for param `participants'

在Webrick中。

我对如何继续的方式有些困惑,给所有输入的索引可能根本不像Rails-way。

有什么建议如何使其工作?我的目的是让每个参与者发送性别。

最好的问候,谢谢,丹尼尔

代码,简化:

表格:

= form_for @signup do |f|
    - participant_count = @signup.participants.count
    - @signup.participants.each_with_index do |participant,index|
      = f.fields_for "participants[]", participant do |p|
      = render :partial=>'participant_form', |
        :locals=>{:p=>p, :participant=>participant, :index=>index, :participant_count => participant_count}

_participant-Partial,用于有效的一个输入和性别:

%table
  %tr
   %th
    Gender / Only sent for the first participant:(
    %span *
  %td
    =p.radio_button :gender, 'male'
    %span  Male
    =p.radio_button :gender, 'female'
    %span Female
%tr
  %th
    Name
    %span *
  %td
    = p.text_field :first_name / this works just fine! for EACH participant.

导致此HTML代码:

 <input id="event_participants__first_name" name="event[participants][][first_name]" size="30" type="text" value="" />
  and
 <input id="event_participants__gender_male" name="event[participants][][gender]" style="float:left; margin-right: 20px;" type="radio" value="male">
  for each participant.

好吧,因为radiobuttons需要用他们的名字分组 - 这是他们的感觉 - 我不得不在这里砍掉自己的路。

在我的解决方案中,我刚刚添加了一些与阵列相关的索引无线电 - 触发JavaScript函数,该函数设置了正确的,阵列``隐藏''隐藏字段的值。

有效。

相关内容

  • 没有找到相关文章

最新更新