ruby - 将 Ruby 脚本添加到 AJAX 静态网站的最简单方法

标签 ruby nginx sinatra

我有一个简单的投资组合网站,它只是一组静态 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 文件执行。

我认为为此使用 Sinatra 可能是个好主意,但我不知道如何将它绑定(bind)/路由到域中的特定位置。例如,表单可能会向 example.com/contact 提交 AJAX 请求,然后它会发送电子邮件。

问题是,我可以处理请求的所有其他 Rails 应用程序都在不同的域上运行,所以我不能使用 AJAX 直接调用其他应用程序,我需要创建一个此域上的单独脚本。

我知道我可以重写整个静态网站以在 Sinatra 上运行,这将消除这个问题,但我更喜欢用一些简单的方法来做到这一点,因为它只是为了一个简单的联系表单。

最佳答案

另一种选择是使用联系表单处理服务,例如 EmailMeForm。似乎有几个类似的系统可用。当然,它不像滚动您自己的系统那样“酷”。但它可以用于您的静态网站目的。

http://www.emailmeform.com/

关于ruby - 将 Ruby 脚本添加到 AJAX 静态网站的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627136/

相关文章:

ruby - 如何仅为特定的 RVM 版本设置 RUBYOPT?

ruby-on-rails - 找到第一个匹配记录的最有效方法是什么?

ruby-on-rails - Rails 胖模型示例,这是正确的思维方式吗?

nginx - proxy_pass 基于 header 而不使用 if 条件

ruby-on-rails - 我可以使用密码保护 Sinatra 应用程序免受路由影响吗?

ruby-on-rails - 具有方法值比较的 Rails 作用域

Nginx.ingress.kubernetes.io/proxy-body-size 不起作用

amazon-web-services - 如何使用 AWS、Docker、Nginx + Daphne 在生产中正确配置 Django Channels?

ruby - cassandra cql 在 where 子句中使用日期过滤数据

ruby - ActiveRecord:连接断开时如何自动重新连接到 PostgreSQL?