2016-06-22 5 views
0

페이지/연락처에 양식이 있고 페이지 모델 대신 ContactForm이라는 다른 모델에 데이터를 보내려고합니다. 따라서 기본 컨벤션 외부에있는 것 같습니다.다른 모델의 레일 양식

<%= 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"=> { "이름"=> "디에고", " 전화 "=>" ","이메일 "=>" ","제목 "=>" ","메시지 "=>"호알 "}"커밋 "=>"연락처 양식 만들기 "} 렌더링 된 페이지/연락처. html.erb within layouts/application (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 
관련 문제