0

Я создаю интерактивный веб-сайт через Cloud9, используя учебник онлайн. Мы используем bootstrap, JavaScript, ruby ​​on rails, html и scss. Тем не менее, я в настоящее время застрял. Всякий раз, когда я нажимаю «отправить» ..., я получаю Routing Error page. Ни одна из данных не хранится в моем db.Нет совпадений маршрутов [POST] "/ контакты/новые" Ruby on Rails

routes.rb

Rails.application.routes.draw do 
    root to: 'pages#home' 
    get 'about', to: 'pages#about' 
    resources :contacts 
end 

contacts_controller.rb

class ContactsController < ApplicationController 
    def new 
    @contact = Contact.new 
    end 

    def create 
    @contact = Contact.new(contact_params) 
    if @contact.save 
     redirect_to new_contact_path, notice: "Message sent." 
    else 
     redirect_to new_contact_path, notice: "Error occured." 
    end 
    end 

    private 
    def contact_params 
     params.require(:contact).permit(:name, :email, :comments) 
    end 
end 

контакты/new.html.erb

<div class="container"> 
    <div class="row"> 
    <h3 class="text-center">Contact Us</h3> 
    <div class="col-md-4 col-md-offset-4"> 
     <%= flash[:notice] %> 
     <div class="well"> 
     <%= form_for "contact" do |f| %> 
      <div class="form-group"> 
      <%= f.label :name %> 
      <%= f.text_field :name, class: 'form-control' %> 
      </div> 
      <div class="form-group"> 
      <%= f.label :email %> 
      <%= f.text_field :email, class: 'form-control' %> 
      </div> 
      <div class="form-group"> 
      <%= f.label :comments %> 
      <%= f.text_area :comments, class: 'form-control' %> 
      </div> 
      <%= f.submit 'Submit', class: 'btn btn-default' %> 
     <% end %> 
     </div> 
    </div> 
    </div> 
</div> 

Я последовал инструкции точно, и я понятия не имею, что не так или что изменить. Может кто-нибудь помочь, прежде чем я разорву волосы?

ответ

1

Вам нужно изменить

<%= form_for "contact" do |f| %> 

в

<%= form_for @contact do |f| %> 

Полный код

<div class="container"> 
    <div class="row"> 
    <h3 class="text-center">Contact Us</h3> 
    <div class="col-md-4 col-md-offset-4"> 
     <%= flash[:notice] %> 
     <div class="well"> 
     <%= form_for @contact do |f| %> 
      <div class="form-group"> 
      <%= f.label :name %> 
      <%= f.text_field :name, class: 'form-control' %> 
      </div> 
      <div class="form-group"> 
      <%= f.label :email %> 
      <%= f.text_field :email, class: 'form-control' %> 
      </div> 
      <div class="form-group"> 
      <%= f.label :comments %> 
      <%= f.text_area :comments, class: 'form-control' %> 
      </div> 
      <%= f.submit 'Submit', class: 'btn btn-default' %> 
     <% end %> 
     </div> 
    </div> 
    </div> 
</div> 
+0

OMG благодарю вас так много, @Deepak! – Andrea