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>

application_controller.rb で、deliver_contact_form アクションを this として定義します。

  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}

私は何をする必要があるのだろうか?

ありがとう、ミナ

4

1 に答える 1

0

routes.rb でルートを定義する必要があります

とにかく、このような小さなアクションであっても、新しいコントローラーを作成することをお勧めします。

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

<% form_tag(deliver_contact_form_path, :method => 'post') do
于 2011-07-17T03:11:59.623 に答える