2016-06-22 4 views
0

私はページ/連絡先にフォームを持っており、Pagesモデルの代わりにContactFormという別のモデルにデータを送信したいので、これは基本的な表記外です。他のモデルのRailsフォーム

<%= form_for @contact_form, url: pages_contact_path, :method => :post do |f| %> 
... 
... 
<% end %> 

class PagesController < ApplicationController 

    def contact 
     @contact_form = ContactForm.new(contact_form_params)  
    end 
end 

私はこのルート

post 'pages/contact' => 'pages#contact' 

を作成し、そのすべてが正常に動作するようですが、何のデータが記録されていません。ローカルサーバーでは、私は見ることができますPOSTを処理しているが、..なぜ任意のSQLトランザクションをやっていません?

Started POST "/pages/contact" for ::1 at 2016-06-22 15:58:47 -0300 
Processing by PagesController#contact as HTML 
Processing by PagesController#contact as HTML 
Parameters: {"utf8"=>"✓",  "authenticity_token"=>"WIb3jXmkxP0mxRPSPU0Yj050fFwCQOlm9FatCFiGuSrEaoRNXNtmn/w0ZOMtsZsRUwjq4NQweV+d56T5nFxL5Q==", "contact_form"=>{"name"=>"Diego", "phone"=>"", "email"=>"", "subject"=>"", "message"=>"Hoal"}, "commit"=>"Create Contact form"} 

パラメータ:{ "UTF8" => "✓"、 "authenticity_token" => "WIb3jXmkxP0mxRPSPU0Yj050fFwCQOlm9FatCFiGuSrEaoRNXNtmn/w0ZOMtsZsRUwjq4NQweV + d56T5nFxL5Q =="、 "CONTACT_FORM" => { "名" => "サンディエゴ"、 "電話 "=>"」、 "電子メール" => ""、 "対象" => ""、 "メッセージ" => "Hoalは"}、 "コミット" => "コンタクトフォームを作成します"} レンダリングページ/接触。レイアウト内html.erb /アプリケーション(3.0ms)

どうもありがとう!

+1

あなたは' contact_forms_param'を定義するにはどうすればよいあなたは 'のparamsから読んでいる:?だから、単純であるあなたがintrestedているもの...ビューに

を渡されますか – Leito

答えて

2

私が見ることができるのは、POSTを処理していますが、 SQLトランザクション..なぜですか?

いいえSQLは、トランザクションが要求されない限り行われます。どのようなあなたのcontact_formアクションがないと、変数にパラメータを割り当てることですが、この変数は検証され、データベースに保存することが要求されていません。 `:[CONTACT_FORM]

@contact_form = ContactForm.new(contact_form_params) 
if @contact_form.save 
    # render success 
else 
    # render errors 
end 
関連する問題