2013-02-05 3 views
1

sinatra 내의 Pony Gem과 함께 연락 양식 (HTML로 작성)에서 이메일을 보내려하지만, 문서를 따라 갔지만 뭔가 빠져 있어야합니다.포니 (Pony)와 시나트라 (Sinatra)와 메일 보내기

get '/contact' do 
    erb :contact, :layout => :layout 
end 

post '/contact' do 
require 'pony' 
Pony.mail({ 
:from => params[:name], 
    :to => 'myemailaddress', 
    :subject => params[:name] + "has contacted you via the Website", 
    :body => params[:comment], 
    :via => :smtp, 
    :via_options => { 
    :address    => 'smtp.gmail.com', 
    :port     => '587', 
    :enable_starttls_auto => true, 
    :user_name   => 'myemailaddress', 
    :password    => 'mypassword', 
    :authentication  => :plain, 
    :domain    => "localhost.localdomain" 
    } 
    }) 
    redirect '/success' 
    end 


    get('/success') do 
@notification = "Thanks for your email. I'll be in touch soon." 
erb :index, :layout => :layout 
    end 

그래서 내 버튼을

<button type="submit" class="btn" value="send">Submit</button> 

을 제출 아니 메시지 여기

으로 다시 렌더링됩니다 제출 한 연락처 페이지를 클릭 한 후 내가 트리거 실종 포니의 설정을하다 여기 어딘가에?

답변

1

post을 수행하도록 설정 했습니까? 페이지를 새로 고치는 것 같으면 form 태그가 올바르게 설정되지 않았을 수 있습니다. 제출할 버튼은 submit 유형의 input 태그 여야합니다. 당신이 바로, 작업 및 사후을 설정하지 않는 나의 부분에 바보 오류가 ... 지금은 좋아 나던

<form action="/contact" method="post"> 
    <!-- your form elements go here --> 

    <input type="submit" value="Sign in"> 
</form> 
+0

: 대상 => PARAMS [: 이름] + "가있는 HTML은 다음과 같이 보일 필요가있다 웹 사이트를 통해 연락했습니다. "라고 말하면 – Richlewis

+0

흠에 관한 nil 클래스 오류가 발생합니다. 'params [: name]'과 같은 것은'nil '이 될 수 있습니다. 'name'이'name'으로 설정된 양식 요소를 확인하십시오. 이렇게 :''. 또한, 'nil' 포인터 오류를 막으려면 다음과 같이 할 수 있습니다 :'{subject = = ""# {params [: name] ||'Someone '}이 (가) . 'name' 매개 변수가 전달되지 않으면'Someone'이 기본값이됩니다. – Batkins

+0

정확하게 그 유형이 무엇인지 = id, name = 거기에 섞여 있습니다. – Richlewis