2015-05-07 3 views
1

Мои 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 для отправки электронной почты. Он отправляет электронное письмо с автономной формой в первом фрагменте кода.

+0

Что такое сообщение об ошибке? Вы установили '@ contact' в свой' ApplicationController'? – max

ответ

6

Вы имеете form_for тег внутри тега формы ...

Удалите <form> элемент из вашего HTML и изменить формулировку form_for тег

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

Вы вызываете метод form_for helper в теге формы. Просто удалите тег формы и вызовите метод form_for helper. Он также генерирует тег формы.

Надеюсь, он будет работать нормально.

Смежные вопросы