f.input命令是否必须嵌套在ActiveAdmin的f.inputs中?

时间:2016-03-21 05:33:51

标签: ruby-on-rails forms activeadmin formtastic

在处理包含一些日期选择器的ActiveAdmin表单时,我调整了Datepicker部分的一些代码:

ActiveAdmin.register AdminMessage do
  form do |f|
    f.input :message
    f.input :start_at,  as: :datepicker, datepicker_options: { min_date: "2013-10-8",        max_date: "+3D" }
  end
end

输出的HTML包括

      <div id="active_admin_content" class="without_sidebar">
        <div id="main_content_wrapper">
          <div id="main_content"><form accept-charset="UTF-8" action="/admin/admin_messages" class="formtastic admin_message" id="new_admin_message" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="AbF7S3R+YIDruz770R2rz5YJubqlrZjx3BmhM5ZbjKI=" /></div><li class="datepicker input optional stringish" id="admin_message_start_at_input"><label class=" label" for="admin_message_start_at">Start at</label><input class="datepicker" id="admin_message_start_at" name="admin_message[start_at]" type="text" />

</li></form></div>
        </div>
      </div>

,其中不包含message的{​​{1}}属性的任何内容。

将其嵌套在AdminMessage内修复它。

f.inputs

,得到

ActiveAdmin.register AdminMessage do
  form do |f|
    f.inputs do
      f.input :message
      f.input :start_at,  as: :datepicker, datepicker_options: { min_date: "2013-10-8",        max_date: "+3D" }
    end
  end
end

<div id="active_admin_content" class="without_sidebar"> <div id="main_content_wrapper"> <div id="main_content"><form accept-charset="UTF-8" action="/admin/admin_messages" class="formtastic admin_message" id="new_admin_message" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="AbF7S3R+YIDruz770R2rz5YJubqlrZjx3BmhM5ZbjKI=" /></div><fieldset class="inputs"><ol><li class="text input optional" id="admin_message_message_input"><label class=" label" for="admin_message_message">Message</label><textarea id="admin_message_message" name="admin_message[message]" rows="20"> </textarea> </li><li class="datepicker input optional stringish" id="admin_message_start_at_input"><label class=" label" for="admin_message_start_at">Start at</label><input class="datepicker" id="admin_message_start_at" name="admin_message[start_at]" type="text" /> </li></ol></fieldset></form></div> </div> </div> 是否始终必须嵌套在f.input中,除非您只显示一个输入?还是我误解了什么?

在同一页面上还有其他文档,但最初的文档描述了一个在formtastic之上分层的DSL,除非它添加了一些内容,否则我宁愿不使用DSL。

Formtastic README上的文档没有明确说明f.inputs必须嵌套在f.input中,但在所有示例中,它都是嵌套的,与ActiveAdmin不同文档。

我正在使用Rails 3,activeadmin 0.6.3和formtastic 2.2.1。

0 个答案:

没有答案