2011-07-17 12 views
0

Я делаю контактную форму, у которой нет модели. Я просто хочу, чтобы это было всплывающее окно на главной странице, когда люди нажимают на нас.Рельсы: Нет совпадений в маршруте, создавая контактную форму

В парциальных мы загружаем _contact.html.haml, это то, что мы имеем

<div class="contact-us-form"> 

    <h>Contact Us</h> 
    <% form_tag(:controller => "application", :action => "deliver_contact_form", :method=>'post') do %> 
    <p> 
     <%= label_tag(:contact_email, "Your Email") %> 
    </p> 
    <p> 
     <%= text_field_tag(:contact_email) %> 
    </p> 
    <p> 
     <%= label_tag(:contact_detail, "Details") %> 
    </p> 
    <p> 
     <%= text_area_tag(:contact_detail,:"", :size=> "44x6") %> 
    </p> 
    <p> 
     <%= submit_tag("Submit") %> 
    </p> 
    <% end %> 
    <div id="contact_cancel"><%= link_to "Cancel", "javascript:void()"%></div> 
</div> 

и определит deliver_contact_form действия, как это в application_controller.rb

def deliver_contact_form 
    ContactMailer.welcome_email(params).deliver  
    respond_to do |format|   
     format.html { redirect_to comments_path } 
    end 
    end 

когда я бег просто домашняя страница (localhost: 3000) Я получаю

No route matches {:controller=>"application", :action=>"deliver_contact_form", :method=>"post", :locale=>:en} 

Мне было интересно, что мне нужно сделать?

Спасибо, Mina

+1

Как выглядит ваш файл 'routes.rb'? –

+1

У меня нет ничего, что связано с этим на моих маршрутах.rb, вот почему выложили это :) – Matilda

ответ

0

Вам нужно определить маршрут в вашем routes.rb

Я также предлагаю создать новый контроллер, даже для небольшого действия, как это, так или иначе:

match '/deliver_contact_form' => 'application#deliver_contact_form', :via => :post 

<% form_tag(deliver_contact_form_path, :method => 'post') do 
Смежные вопросы