在处理包含一些日期选择器的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="✓" /><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="✓" /><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。