Самый простой способ добавить скрипт Ruby на статический сайт для AJAX - PullRequest
2 голосов
/ 08 июля 2011

У меня есть простой веб-сайт портфолио, который представляет собой набор статических HTML-файлов и некоторый jQuery.

Сейчас я пытаюсь добавить простую форму контакта, которая отправленачерез AJAX, поэтому мне нужно как-то обработать запрос на стороне сервера.

Все это работает на VPS со многими другими приложениями Rails на nginx.Если бы у меня был установлен PHP, это была бы простая задача - просто добавить один простой файл PHP и вызвать его напрямую через AJAX, но я действительно не знаю, как это сделать в Ruby.

У меня в основном есть

server {
    listen 80;
    server_name example.com;
    root /var/apps/example/com;
}

для статического сайта, и теперь мне нужно как-то сказать, что файл contact.rb должен быть выполнен как файл Ruby.

Я подумал, что, возможно, использование Синатры для этого было бы хорошей идеей, но я не знаю, как связать / направить его в определенное место в домене.Например, форма может отправить запрос AJAX на example.com / contact , который затем просто отправит электронное письмо.

Проблема в том, что всеиз других приложений Rails, где я мог обработать запрос, выполняющийся в другом домене, поэтому я не могу использовать AJAX-вызов напрямую для какого-то другого приложения, и мне нужно создать отдельный скрипт для этого домена.

Я знаю, что мог бы переписать весь статический веб-сайт для работы на Sinatra, что позволило бы устранить эту проблему, но я бы предпочел сделать это с помощью простого подхода, поскольку все это только для одной простой контактной формы.

Ответы [ 3 ]

0 голосов
/ 08 июля 2011

Другой вариант - использовать службу обработки контактных форм, такую ​​как EmailMeForm. Кажется, есть несколько подобных систем. Конечно, это не так круто, как катание вашей собственной системы. Но это может сработать для ваших статических целей.

http://www.emailmeform.com/

0 голосов
/ 31 октября 2012

в apache httpd.conf:

AddHandler cgi-скрипт .rb
Опции ExecCGI

#!/usr/bin/env ruby
# in test.rb
require 'cgi'
puts "Content-Type: text/html \n\n" #wichtig

params = CGI.new
query = params['q'] #simple as that!

$stderr.puts "Remote Addr: #{params.remote_addr}"
0 голосов
/ 08 июля 2011

Используйте синатру и узнайте об определении маршрутов.Это именно то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...