我使用带有bootstrap的简单形式在rails中创建了这个表单:
<%= simple_form_for @page, :html => { :class => 'page-form' } do |f| %>
<div class="row">
<%= f.input :title, wrapper_html: { class: 'span6'} %>
<%= f.input :url, wrapper_html: { class: 'span3'} %>
<%= f.input :content, input_html: { class: 'wysihtml5 span9' }, wrapper_html: { class: 'span9 row' } %>
<%= f.input :excerpt, input_html: { class: 'wysihtml5 span9 excerpt' }, wrapper_html: { class: 'span9 row'} %>
</div>
<% content_for :sidebar do %>
<div class="page-header">
<h1>Publish</h1>
</div>
<div class="well">
<%= f.input :status , collection: Page::STATUS.map { |s| [s.humanize, s] }, prompt: '- Select page status -' %>
<div class="form-actions">
<%= f.button :submit, :class => 'btn btn-primary' %>
<%= link_to t('.cancel', :default => t("helpers.links.cancel")),
pages_path, :class => 'btn' %>
</div>
</div>
<% end %>
<% end %>
问题是,当提交按钮位于content_for
块内时,它不会在单击时更新表单。如果我在这个区块外面有按钮就可以了。
有没有办法让它在content_for
块内部工作?我需要它在侧栏。
所需结果的图片:
赞赏任何提示,答案或有用的评论:)
答案 0 :(得分:2)
我找到了自己的答案。
通过将表单元素放入侧边栏,当然在表单标记之外呈现表单字段。 (在页面底部,通过应用程序布局呈现侧边栏的其余部分)。
这会导致表单字段未附加到表单。
我的解决方案是放弃content_for
块,然后只是在这种情况下以部分形式处理侧边栏。