2013-02-05 87 views
1

我想從聯繫表格(內置HTML)發送電子郵件與Sinatra內的小馬寶石,我遵循文檔,但必須丟失一些東西。發送郵件與小馬和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標記可能沒有正確設置。另外,提交的按鈕應該是input類型爲submit的標籤。該HTML將需要看起來像這樣:

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

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

你在哪裏吧,對我而言愚蠢的錯誤不設置操作和後...現在它不喜歡的:主題=> PARAMS [:名字] +「有通過網站與你聯繫「,這是關於+ – Richlewis

+0

嗯拋出一個無類錯誤嗯。看起來像'params [:name]'可能是'nil'。確保名稱設置爲名稱的表單元素。像這樣:''。如果你想避免'nil'指針錯誤,不管怎麼樣,你都可以這樣做':subject =>「#{params [:name] ||'Someone'}通過網站與你聯繫」 。如果沒有傳入'name'參數,這將使其默認爲'Someone'。 – Batkins

+0

這就是我所知道的type = text,id = name,在那裏混淆了,再次感謝 – Richlewis