form_for无法在rails中工作

时间:2015-05-07 14:08:19

标签: ruby-on-rails actionmailer form-for

我的form_for在我单独使用时有效:

<h1>Contact Us</h1>
<%= @contact.errors.full_messages.join(', ') %>
<%= form_for @contact do |f| %>
  <p>
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </p>

  <p>
    <%= f.label :email %><br>
    <%= f.text_field :email %>
  </p>

  <p>
    <%= f.label :subject %><br>
    <%= f.text_field :subject %>
  </p>

  <p>
    <%= f.label :message %><br>
    <%= f.text_area :message %>
  </p>

  <p>
    <%= f.submit 'Submit Query', :class => 'submit-button btn btn-default' %>
  </p>
<% end %>

然而,当我使用样式和所有内容将其添加到我的其余网络应用程序时,它会停止工作:

<!-- scrollToTop -->
<!-- ================ -->
<div class="scrollToTop"><i class="icon-up-open-big"></i></div>

<!-- page wrapper start -->
<!-- ================ -->
<div class="page-wrapper">

  <!-- page-intro start-->
  <!-- ================ -->
  <div class="page-intro">
    <div class="container">
      <div class="row">
        <div class="col-md-12">
          <ol class="breadcrumb">
            <li><i class="fa fa-home pr-10"></i><a href="index.html">Home</a></li>
            <li class="active">Contact</li>
          </ol>
        </div>
      </div>
    </div>
  </div>
  <!-- page-intro end -->

  <!-- main-container start -->
  <!-- ================ -->
  <section class="main-container">

    <div class="container">
      <div class="row">

        <!-- main start -->
        <!-- ================ -->
        <div class="main col-md-12">

          <!-- page-title start -->
          <!-- ================ -->
          <h1 class="page-title">Contact Us</h1>
          <!-- page-title end -->
          <div class="row">
            <div class="col-md-6">
              <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do tempor.</p>
              <div class="alert alert-success hidden" id="MessageSent">
                We have received your message, we will contact you very soon.
              </div>
              <div class="alert alert-danger hidden" id="MessageNotSent">
                Oops! Something went wrong please refresh the page and try again.
              </div>
              <div class="contact-form">
                <form id="contact-form" role="form">
                  <%= @contact.errors.full_messages.join(', ') %>
                  <%= form_for @contact do |f| %>

                    <div class="form-group has-feedback">
                      <%= f.label :name %>
                      <%= f.text_field :name, :class => 'form-control', :id => 'name', :name => 'name' %>
                      <i class="fa fa-user form-control-feedback"></i>
                    </div>

                    <div class="form-group has-feedback">
                      <%= f.label :email %>
                      <%= f.text_field :email, :class => 'form-control', :id => 'email', :name => 'email' %>
                      <i class="fa fa-envelope form-control-feedback"></i>
                    </div>

                    <div class="form-group has-feedback">
                      <%= f.label :subject %>
                      <%= f.text_field :subject, :class => 'form-control', :id => 'subject', :name => 'subject' %>
                      <i class="fa fa-navicon form-control-feedback"></i>
                    </div>

                    <div class="form-group has-feedback">
                      <%= f.label :message %>
                      <%= f.text_area :message, :class => 'form-control', :rows => '6', :id => 'message', :name => 'message' %>
                      <i class="fa fa-pencil form-control-feedback"></i>
                    </div>

                    <%= f.submit 'Submit Query', :class => 'submit-button btn btn-default' %>

                  <% end %>
                </form>
              </div>
            </div>
            <div class="col-md-6">
              <!-- google maps start -->
              <div id="map-canvas"></div>
              <!-- google maps end -->
            </div>
          </div>
        </div>
        <!-- main end -->

      </div>
    </div>
  </section>
  <!-- main-container end -->

</div>
<!-- page-wrapper end -->

<!-- JavaScript files placed at the end of the document so the pages load faster
================================================== -->
<!-- Google Maps javascript -->
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&amp;sensor=false"></script>

我正在使用Action Mailer发送电子邮件。它会在第一个代码段中发送一封包含独立表单的电子邮件。

2 个答案:

答案 0 :(得分:6)

您在表单标记内有form_for标记...

从HTML中删除<form>元素,并将form_for标记重新命名为

<%= form_for @contact, id: 'contact-form' do |f| %>

答案 1 :(得分:1)

您正在表单标记内调用form_for helper方法。只需删除表单标记,并只调用form_for帮助方法。它还会生成表单标记。

希望,它会正常工作。