内容content_for时,简单表单提交按钮不起作用

时间:2013-04-24 19:30:58

标签: ruby-on-rails forms simple-form

我使用带有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块内部工作?我需要它在侧栏。

所需结果的图片:enter image description here

赞赏任何提示,答案或有用的评论:)

1 个答案:

答案 0 :(得分:2)

我找到了自己的答案。

通过将表单元素放入侧边栏,当然在表单标记之外呈现表单字段。 (在页面底部,通过应用程序布局呈现侧边栏的其余部分)。

这会导致表单字段未附加到表单。

我的解决方案是放弃content_for块,然后只是在这种情况下以部分形式处理侧边栏。