Я создаю контактную страницу с обычной формой, и я нашел Pony, который, казалось, отвечал всем требованиям. Сайт в основном статичен, поэтому он построен с использованием Middleman, но я читал и подумал, что добавить контактную форму Sinatra было бы полезно.
У меня есть форма; У меня есть рубиновый код, но мне трудно собрать их вместе. Кажется, мне не хватает чего-то, что запускает код рубина.
Форма в /source/contact-us.html.haml:
%form.contact{ :action => "/contact-us.html", :method => "post"}
%fieldset
%label{:for => "name"} Full name *
%input{:type => "text", :name => "name"}
%label{:for => "email"} Email addresss *
%input{:type => "text", :name => "email"}
%label{:for => "phone"} Phone *
%input{:type => "text", :name => "phone"}
%input{:type => "submit", :value => "Send", :class => "read-more"}
И код рубина (сейчас в /mail.rb):
require 'sinatra'
require 'pony'
post '/contact-us.html' do
options = {
:to => '[my email]',
:from => params[:email],
:subject => params[:name],
:body => params[:phone]
}
Pony.mail(options)
redirect '/thankyou.html'
end
Я тестирую вещи как локально, так и на сервере, который, как я убедился, работает с Ruby (что всегда является хорошим началом;))
Я искал в другом месте stackoverflow и нашел такие вещи, но ничего не помогло мне решить мою проблему:
Контактная форма в ruby, sinatra и haml
Отправка почты с помощью Pony и Sinatra
Это первый раз, когда я использую Ruby и Middleman для сайта, поэтому я многому научился - я не могу не чувствовать, что упустил что-то довольно очевидное ...